scheme@(guile-user)> (define input '(a b c d e f g)) scheme@(guile-user)> (Heaps-vector-proc (list->vector input) (lambda (v) (display v) (newline))) #(a b c d e f g) #(b a c d e f g) #(c a b d e f g) #(a c b d e f g) #(b c a d e f g) #(c b a d e f g) #(d b a c e f g) #(b d a c e f g) #(a d b c e f g) #(d a b c e f g) #(b a d c e f g) #(a b d c e f g) #(a c d b e f g) #(c a d b e f g) #(d a c b e f g) #(a d c b e f g) #(c d a b e f g) #(d c a b e f g) ... #(c g b d e f a) #(b g c d e f a) #(g b c d e f a) scheme@(guile-user)>