(define (recombine left right)
  (if (not (null? right))
      (let ((tail (cdr right))
            (next (cons (car right) left)))
        (format #t "~a\n" (string-join
                           (map number->string next) " "))
        (recombine next tail)
        (recombine left tail))))

(recombine '() '(1 2 3 4))