如何从固定集中生成固定大小的所有不同2D阵列?

时间:2019-03-07 23:18:01

标签: python

基本上我想要的是:给定一个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中工作,但是伪代码或类似的东西都可以。我似乎无法弄清楚该怎么做。

1 个答案:

答案 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)], ...