我有一个参数列表列表,我想将它们组合成所有可能的组合。在执行之前我不知道列表的数量和每个列表中指定的值。这个问题在Cartesian_Product中定义和讨论。
问题输入可以存储在值数组(或列表列表)中。一个例子可以是两副牌。有两副牌[Red, Blue]
,每副牌有 4 套牌,每套[♠, ♥, ♦, ♣]
有 13 张牌[Ace, King, Queen, Jack, 10, 9, 8, 7, 6, 5, 4, 3, 2]
。
这些数组的笛卡尔积返回一个 104 个元素的集合,包括 2 副牌,每副 52 张可能的扑克牌:
[[Red, ♠, Ace], [Red, ♠, King], ..., (Red, ♠, 2), (Red, ♥, Ace), ..., (Red, ♣, 2),
[Blue, ♠, Ace],[Blue, ♠, King], ..., (Blue, ♠, 2), (Blue, ♥, Ace), ..., (Blue, ♣, 2)]
那么如何生成值列表的所有可能组合呢?