您是否正在寻找itertools.permutations
?
根据help(itertools.permutations)
,
Help on class permutations in module itertools:
class permutations(__builtin__.object)
| permutations(iterable[, r]) --> permutations object
|
| Return successive r-length permutations of elements in the iterable.
|
| permutations(range(3), 2) --> (0,1), (0,2), (1,0), (1,2), (2,0), (2,1)
示例代码:
>>> from itertools import permutations
>>> stuff = [1, 2, 3]
>>> for i in range(0, len(stuff)+1):
for subset in permutations(stuff, i):
print(subset)
()
(1,)
(2,)
(3,)
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)
来自维基百科,排列与组合的区别:
排列:
非正式地说,一组对象的排列是将这些对象按照特定顺序排列。例如,集合 {1,2,3} 有六种排列方式,分别为 (1,2,3), (1,3,2), (2,1,3), (2,3,1), (3,1,2) 和 (3,2,1)。
组合:
在数学中,组合是从一个较大的群体中选择若干个物品的方式,与排列不同的是,组合中物品的顺序无关紧要。