2010-06-07 48 views
15

我有以下结构的Python:如何查找列表列表(使用Python)的所有可能组合?

letters = [['a', 'b', 'c'], ['p', 'q', 'r', 's'], ['j', 'k', 'l']] 

我想找到他们目前存在的顺序字母的所有可能的组合。对于上面的例子,这将是:

apj 
apk 
apl 
aqj 
aqk 
aql 
... 
csk 
csl 

这似乎应该是一个非常简单的事情,但我无法弄清楚。

+0

我们可以假设值已在各列表内定购? – wcm 2010-06-07 13:49:38

+0

你使用的是什么版本的Python? – 2010-06-07 13:52:07

+0

@wcm:没有,单个列表中的值没有排序。 – 2010-06-07 13:54:21

回答

14

在Python 2.6或更新版本,您可以使用itertools.product

>>> import itertools 
>>> map(''.join, itertools.product(*letters)) 
apj 
apk 
apl 
aqj 
aqk 
aql 
...etc... 
csk 
csl 
+0

而在较老的Pythons中,你可以从'itertools'文档复制'product'的纯Python实现。 – 2010-06-07 14:07:24

相关问题