k文字版
こんなんでいいのかな?
3文字版とほとんど同じだけど
(use srfi-1) (use util.combinations) ; Gauche (define (k-letters lst k) (define (ok? lst) (if (null? (cdr lst)) #t (if (equal? (take (cdr (car lst)) (- k 1)) (take (cadr lst) (- k 1))) (ok? (cdr lst)) #f))) (define (shape-up lst) (append (map car lst) (cdr (car (reverse lst))))) (map shape-up (filter ok? (permutations lst))))