基本上我想要的是:给定一个m x n数组和一个非空集,以生成包含这些元素的所有不同列表。例如,给定一个2x2
数组和一个集合{0,1,2}
,我希望返回:
[[0, 0], [0,0]]
[[0, 0], [0,1]]
[[0, 0], [0,2]]
[[0, 0], [1,0]]
[[0, 0], [1,1]]
[[0, 0], [1,2]]
[[0, 0], [2,0]]
[[0, 0], [2,1]]
[[0, 0], [2,2]]
[[0, 1], [0,0]]
,依此类推。我正在Python中工作,但是伪代码或类似的东西都可以。我似乎无法弄清楚该怎么做。
答案 0 :(得分:1)
from itertools import product
x = [0, 1, 2] #define the set you want to work on
b = product(x, repeat=4)
# repeat should be the sum of dimension of the desired output 2+2 = 4 in this case
c = [[i[:2], i[2:]] for i in b]
#outputs [[(0, 0), (0, 0)], [(0, 0), (0, 1)], [(0, 0), (0, 2)], [(0, 0), (1, 0)], ...