如何从一组列表中获取笛卡尔积(每种可能的值组合)?
输入:
somelists = [
   [1, 2, 3],
   ['a', 'b'],
   [4, 5]
]
期望的输出:
[(1, 'a', 4), (1, 'a', 5), (1, 'b', 4), (1, 'b', 5), (2, 'a', 4), (2, 'a', 5) ...]
假设我有一个如下所示的数组:
Array
(
    [arm] => Array
        (
            [0] => A
            [1] => B
            [2] => C
        )
    [gender] => Array
        (
            [0] => Female
            [1] => Male
        )
    [location] => Array
        (
            [0] => Vancouver
            [1] => Calgary
        )
)
如何在保留外部关联数组的键并在内部数组中使用它们的同时找到笛卡儿积?算法的结果应该是这样的:
Array
(
    [0] => Array
        (
            [arm] => A
            [gender] => Female
            [location] => Vancouver
        )
    [1] => Array
        (
            [arm] => A
            [gender] => Female
            [location] => Calgary
        )
    [2] => Array
        (
            [arm] => A
            [gender] => …