0

可能重复:
如何在 Python 中生成列表的所有排列

我想找到列表中元素的所有排列。但是随后施加了一些条件..嗯..可能一个例子可以帮助我更好地解释。

我有四个清单

["1"],["0"],["a","b","c],["d","e","f"]

现在我想通过以下方式进行排列:

 "10ad" ,"10bd","10cd","10ae", "10be"
 ,"10bf"..

等等..

所以基本上每个元素(每个元素)?现在我知道这样做的非常天真的方法。但是这样做的pythonic方法是什么?有的话??有什么建议么

谢谢

4

1 回答 1

4

我认为您想使用该itertools模块,它是标准 Python 发行版的一部分。

例如:

import itertools

a = ["1"]
b = ["0"]
c = ["a","b","c"]
d = ["d","e","f"]

for item in itertools.product(a, b, c, d): 
    print(item)

编辑:要清楚,该itertools.product函数提供输入列表中所有项目的所有组合,而不是permutations。但根据 OP 的措辞,我认为这是他/她真正想要的。

于 2012-04-06T03:03:31.477 回答