如何从python中的二维列表中获取所有可能的项目组合?

big*_*ind 5 python list combinatorics

我没有找到更好的方法来在标题中表达这个问题.如果可以,请编辑.

我有一个这样的列表列表:

a = [['a','b'],[1,2]]
Run Code Online (Sandbox Code Playgroud)

现在,我想要一个能够吐出所有可能组合的函数:

[['a',1],['a',2],['b',1],['b',2]]
Run Code Online (Sandbox Code Playgroud)

预先知道a中的列表的数量,也不预先知道每个子列表的长度,但所有出现的组合应该包含每个子列表中的1个项目.

Sve*_*ach 12

你需要itertools.product():

>>> list(itertools.product(*a))
[('a', 1), ('a', 2), ('b', 1), ('b', 2)]
Run Code Online (Sandbox Code Playgroud)