利用递归计算全排列源码
递归真的是有意思的东西,循环实现不了的,它能实现
(defun perm(lst / ret res);;;lst--任意表
(cond ((null lst)nil)
((null(cdr lst))lst)
(t
(foreach x lst
(setq ret(mapcar '(lambda(e)
(if (listp e)
(cons x e)
(list x e))
)(perm(vl-remove x lst))))
(if (listp ret)
(setq res (append res ret))
(setq res (list ret res))
)