python笛卡尔积

Python Cartesian Product

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Get the cartesian product of a series of lists in Python

我在想一些逻辑,我就是想不通。假设我有以下数据结构:

1
2
3
4
5
6
letters = (
    ('b','c'),
    ('a','e','ee'),
    ('d','f'),
    ('e','y'),
)

我将如何通过迭代获得每个可能的字符串组合:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
bade
cade
bede
cede
beede
ceede
bafe
cafe
befe
cefe
beefe
ceefe
bady
cady
bedy
cedy
beedy
ceedy
bafy
cafy
befy
cefy
beefy
ceefy


我会用itertools.product()

1
2
for l in itertools.product(*letters):
    print ''.join(l)