第一种方法:递归
for item in list(perms([1, 2, 3,4])):
print item
第二种方法:python标准库
源代码如下:
def perms(elements):
if len(elements) yield elements
else:
for perm in perms(elements[1:]):
for i in range(len(elements)):
yield perm[:i] + elements[0:1] + perm[i:]
for item in list(perms([1, 2, 3,4])):
print item