如果数组中的值可以介于0和255之间,如何在Python中生成2d数组的所有可能组合

如果数组中的值可以介于0和255之间,如何在Python中生成2d数组的所有可能组合,python,arrays,itertools,Python,Arrays,Itertools,所以我有一个空的4*4数组,其中的值可以在0到255之间,我想生成这个数组的所有可能状态,例如,其中一个状态是: [0, 0, 0, 0] [0, 0, 0, 0] [0, 0, 0, 0] [0, 0, 0, 0] 另一个是: [245, 241, 124, 53] [124, 11, 45, 31] [44, 0, 124, 3] [1, 30, 123, 31] 有可能使用itertools吗?如果是的话,我该怎么做呢?您在这里请求的组合数是255^16=3.19626

所以我有一个空的4*4数组,其中的值可以在0到255之间,我想生成这个数组的所有可能状态,例如,其中一个状态是:

 [0, 0, 0, 0] 
 [0, 0, 0, 0] 
 [0, 0, 0, 0] 
 [0, 0, 0, 0] 
另一个是:

[245, 241, 124, 53]
[124, 11, 45, 31]
[44, 0, 124, 3]
[1, 30, 123, 31]

有可能使用itertools吗?如果是的话,我该怎么做呢?

您在这里请求的组合数是
255^16=3.1962658*10^38
,这是一个非常大的数字

假设1TB=10^12字节,CPU的时钟速度为4GHz,则需要存储设备的方糖中的分子数量和宇宙年龄的100亿倍才能获取并列出所有这些设备

简言之:你不能

你可以这样做

import numpy as np
i=0
while i < 10000:
    currentstate=256*np.floor(np.rand(4,4))
/* ... do something with current state */
将numpy导入为np
i=0
当我<10000时:
当前状态=256*np.楼层(np.兰德(4,4))
/* ... 用当前状态做些什么*/

然后随机抽取这些状态。

这里可能的状态总数是
255^16=3.1962658e+38
。确实要生成所有密钥吗?它是256^16(包括0-255),等于2^128,这是128位加密算法中可能的密钥数。只是为了比较。因为你想做的在计算上是不可行的,也许你可以告诉我们你为什么要这么做,我们可以帮助你找到一个更好的方法。问题中的数组只是一个例子,我想知道具体的方法,我相信Python可以做到这一点。这不是一个技术问题。