给定一个矩阵,如何快速生成其行元素在python中的所有元组?

Given a matrix, how can I quickly generate all tuples consisting of its row elements in python?

假设有一个矩阵:

接下来,我从矩阵的每一行中取一个任意元素,因为矩阵总共有 m 行,所以我最终得到 m个元素。

之后我把这些元素按照行号从小到大排列在一起组成一个元组,即

显然,这样的元组一共有2^m个。比如当m=2时,我们会有4个元组,分别是:

那么,我如何编写程序来快速生成这些 2^m 的元组(在 python 中)?我应该使用哪种算法?


注:

输入:一个 m×2 矩阵

输出:2^m 个元组

itertools.product

示例:

In [1]: import itertools                                                                                    

In [2]: arr = [[1, 2], [3, 4], [5, 6]]                                                                      

In [3]: list(itertools.product(*arr))                                                                       
Out[3]: 
[(1, 3, 5),
 (1, 3, 6),
 (1, 4, 5),
 (1, 4, 6),
 (2, 3, 5),
 (2, 3, 6),
 (2, 4, 5),
 (2, 4, 6)]