(defun permute (govno)
(cond ((null govno) '(()))
(t (mapcan #'(lambda (element)
(mapcar #'(lambda (perm)
(cons element perm))
(permute
(remove* element
govno
:count 1
:test #'eq))))
govno))))