有没有办法在Python中以指数方式生成列表?

Hsi*_*ang 0 python hashtable list

我有一本字典:

D = {1:[1,2,3],2:[4,5],3:[6,7]}

我想做的是找到所有3*2*2组合,

 [[1,4,6], [1,4,7],
 [1,5,6], [1,5,7],
 [2,4,6], [2,4,6],
 [2,5,6], [2,5,7],
 [3,4,6], [3,4,7],
 [3,5,6], [3,5,7] ]
Run Code Online (Sandbox Code Playgroud)

有什么办法,就像做循环一样

for key in D:
   for num in D[key]:
     for xxxxx
Run Code Online (Sandbox Code Playgroud)

然后执行所有组合?谢谢!

orl*_*rlp 6

用途itertools.product:

itertools.product(*D.values())
Run Code Online (Sandbox Code Playgroud)

例:

>>> import itertools
>>> D = {1:[1,2,3], 2:[4,5], 3: [6,7]}
>>> list(itertools.product(*D.values()))
[(1, 4, 6), (1, 4, 7), (1, 5, 6), (1, 5, 7), (2, 4, 6), (2, 4, 7),
 (2, 5, 6), (2, 5, 7), (3, 4, 6), (3, 4, 7), (3, 5, 6), (3, 5, 7)]
Run Code Online (Sandbox Code Playgroud)