Python:itertools.product()的更快替代方案?

Python:itertools.product()的更快替代方案?,python,itertools,Python,Itertools,我试图找到长度为22,元素值为1-9的列表的所有可能组合 当我在itertools.product(范围(1,10),repeat=22)中使用[I for I]时,Python崩溃。Python有更快的替代方案吗?正如大家所评论的,尝试直接使用生成器,而不是使用列表。找到所有的组合还不清楚。如果需要打印,请执行以下操作: for i in itertools.product(range(1, 10), repeat=22): ... #Don't actually print, tha

我试图找到长度为22,元素值为1-9的列表的所有可能组合


当我在itertools.product(范围(1,10),repeat=22)中使用
[I for I]
时,Python崩溃。Python有更快的替代方案吗?

正如大家所评论的,尝试直接使用生成器,而不是使用列表。找到所有的组合还不清楚。如果需要打印,请执行以下操作:

for i in itertools.product(range(1, 10), repeat=22):
    ... #Don't actually print, that may block your computer for a long time.

如果您需要对这些值执行某些操作,请告诉我们您需要什么。

您需要这些值的列表,还是可以逐个使用它们?发电机可能是一个很好的解决方案…只是想说同样的事情。。。只需做:对于itertools.product(范围(1,10),repeat=22)中的i要添加到@JonSurrell的注释中,所有这些值的列表将包含984770902183611232881(几乎是一个sextillion!)元素。你真的需要一次将它们全部存储起来吗?即使你有足够的内存来存储它们,你也无法遍历它们——这将花费太长的时间。也许你应该编辑你的问题来描述你的实际目标;这很可能是一个。那么,您尝试创建
9**22
984770902183611232881
元素。你能估计出这么多对象的内存需求吗?谢谢,我也遇到了一个非常类似的问题,你已经解决了。我当时正处于XY问题的思维模式。未来观众的专业提示。。。不要打印它们。对于给达沃斯带来的不便,我深表歉意/别担心,我先读了关于这个问题的评论:)我也读了手册:很好地编辑了
打印
,但可能是
重复=22
部分很危险。