【发布时间】:2015-09-27 00:43:37
【问题描述】:
我正在尝试输出包含字母和数字的每个可能的 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 也做了我想做的事情,但它不适用于我正在使用的大量对象和组合的长度。如果已经有这样的列表,那就可以了。
或者是不可能完成这件事?
【问题讨论】:
标签: python python-3.x out-of-memory combinations permutation