如何生成列表的所有可能排列,b(1,6,8,3,9,5)包括不同长度的排列?例:
List a = [1,2,3]
generateperms(a)
1,2,3
3,1,2
3,2,1
1,3,2
2,1,3
2,3,1
2,3
1,2
1,3
2,1
3,2
3,1
Run Code Online (Sandbox Code Playgroud)
等等,并得到每个长度的所有permutarions?
编辑:我只是要使用它,用python编写,运行良好:
import itertools
a = ['a','b','c']
for i in range(len(a)):
print list(itertools.permutations(a,i+1))
Run Code Online (Sandbox Code Playgroud)
我认为这将是每个子集的所有排列.
返回子集的最简单方法是考虑从0(空集)到输入列表长度(完整集)的所有二进制整数.因此,您从0开始计算并包括2**(length(input))并使用结果来屏蔽要从该特定子集中排除的所有元素.
从那里你应该能够使用'网上的许多代码示例中的任何一个来返回排列.