如何获得一个序列的全排列
获取序列无重复排列
使用python3 自带的itertools
import itertools
test=[1,2,3,4]
list1=list(itertools.permutations(test,2))
print(list1)
其所得结果如下:[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
获取序列的组合
import itertools
test=[1,2,3,4]
list1=list(itertools.combinations(test,2))
print(list1)
其结果如下:[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
可以看出组合与排列的区别,组合不考虑选择数字的顺序
获取序列可重复全排列
originlist=[1,2,3]
def run(t):
nlist=[]
if t==1:
return originlist
llist=run(t-1)
nlist=[str(x)+str(y) for x in llist for y in originlist]
return nlist
print(run(3))
使用以上方法,可以得到长度为3的可重复全排列