我试图输出与字母和数字的每种可能的6种长度组合的列表。
我已经尝试了许多不同类型的代码,这似乎是最好的,但是对于我使用它的时间太长,它不起作用。
import itertools
import pprint
letters = ["A","B","C","D","E","F","G","H","I","J","K","L","M",
"N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
"0","1","2","3","4","5","6","7","8","9"]
pprint.pprint(list(itertools.product(letters, repeat=6)))
运行此命令时,出现以下错误:
MemoryError
确实可以将重复集设置为小于5的任何值。
我怎样才能解决这个问题?是否有更简单或更佳的方法来获得相同的结果?是否可以仅将其输出到文本文件而不必打印它?我不在乎是否有重复,但是如果没有重复就更好了。
这个站点:textmechanic.com/Combination-Generator.html也可以实现我想要的功能,但是它不适用于我正在使用的大量对象以及组合的长度。如果已经有这样的列表,那就可以了。
还是不可能做到这一点?
您实质上是在要求在单个列表中预生成所有此类组合,然后一次性打印它们。
您可以做的是通过list(...)
在迭代器生成它们时不调用而是在运行时立即打印它们来避免这种情况。
这是一个例子。它不是原始格式,但是可以完成工作。
import itertools
import pprint
letters = ["A","B","C","D","E","F","G","H","I","J","K","L","M",
"N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
"0","1","2","3","4","5","6","7","8","9"]
for item in itertools.product(letters, repeat=6):
pprint.pprint(item)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句