python使用递归解决全排列数字示例
有1,2,3,4这4个数字,能组成多少个互不相同且无重复数字的三位数,下面是二种解决示例,需要的朋友可以参考下
第一种方法:递归
for item in list(perms([1, 2, 3,4])):
print item
结果
源代码如下:
#coding:utf-8
import itertools
print list(itertools.permutations([1, 2, 3,4],3))
def perms(elements):
if len(elements) <=1:
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
数据分析咨询请扫描二维码