生成所有长度的所有排列

a s*_*ich 11 permutation

如何生成列表的所有可能排列,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)

Jim*_*nis 5

我认为这将是每个子集的所有排列.

返回子集的最简单方法是考虑从0(空集)到输入列表长度(完整集)的所有二进制整数.因此,您从0开始计算并包括2**(length(input))并使用结果来屏蔽要从该特定子集中排除的所有元素.

从那里你应该能够使用'网上的许多代码示例中的任何一个来返回排列.