Python EAN-13 条码生成器脚本溢出

Python EAN-13 Barcode generator script overflow

我有一个脚本可以生成所有可能的 EAN-13 条形码。问题是它没有 运行 因为我相信我正在算术溢出。是否可以优化它以便我可以获得所有可能的值? EAN-13 条形码看起来像 000000000000110000000000000293401925347 等。总组合应为 10 ^13:

for k in range(13, 14):
    for number in list(product(range(13), repeat=k)):
        barcode = "".join(map(str, number))
        print(barcode)

您的代码存在一些问题。让我们看看

的区别
from itertools import product

k = 13

for number in product(range(10), repeat = k):
    barcode = "".join(map(str, number))
    print(barcode)

1) k 的循环在 range(13, 14) 中。这与 k=13
相同 2) 你的 range(13) 是错误的,因为我们只想加入数字 09
3) 你写了 list(product()。这将创建一个包含 10^13 个数字的列表,这需要大量的 space 和时间来生成。而是直接迭代 itertools 对象以避免这种情况。如果您想了解更多有关迭代器和生成器的信息,请查看此 introduction to generators。 Tldr:优势:它们仅在被询问时生成下一个元素,从而节省内存 space 和元素的计算时间,我们不使用。缺点:它们会耗尽,即一旦使用了生成的元素,生成器就无法再访问它。