在python中使用numpy生成一个范围内所有可能的组合

2024-06-24 12:50:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种有效的方法来生成所有可能的组合在一定的大范围内使用numpy或任何更快的方法。我试过了:

from numpy import *
from itertools import *

dt=dtype('i,i,i,i,i,i')
fromiter(combinations(range(10000000),6), dtype=dt, count=-1)

但是我有一个记忆错误,即使它起作用了,也可能要花很长时间才能完成。我在寻找不重复的组合。例如,如果我需要范围(1,5)内的所有3个数字组合,我将得到(1,2,3),(1,2,4),(1,3,4),(2,3,4)。在


Tags: 方法记忆fromimportnumpycount错误dt
1条回答
网友
1楼 · 发布于 2024-06-24 12:50:21

大约有10000000000000000000000000000000000000000 (1个分隔符)6个元素的可能组合与您使用的范围。你永远也不会把它们都处理掉。您所能做的最好的方法就是使用迭代器以“懒惰的方式”处理它们:

for c in combinations(range(10000000),6):
    print(c)

相关问题 更多 >