【发布时间】:2018-02-28 18:13:31
【问题描述】:
我正在尝试从给定的字母表(以列表的形式)生成所有可能的特定长度的字符串。
我尝试使用 iterools 方法(主要是 itertools.product),但即使它适用于小长度,但正如预期的那样,它非常昂贵,比如 n=100。我想我让它运行了大约 1 个小时,但它仍然没有完成。
在合理的时间范围内实现这一目标的最快方法是什么?
【问题讨论】:
-
给定字母是什么意思?
-
假设我们有 L=['a', 'b']。我们需要 L 中长度为 100 的所有可能组合。
-
生成例如什么是合理的时间范围?
26 ** 100字符组合?即使使用两个字符的字母表(想想二进制!),也有1,267,650,600,228,229,401,496,703,205,376可能的输出。每输出 1ns,这是宇宙年龄的 2,900 倍(感谢Wolfram Alpha)。 -
你计算过,你生成了多少个长度为100的组合?
-
这样的字符串有 1,267,650,600,228,229,401,496,703,205,376 个。您不会在任何合理的时间范围内迭代所有这些。你不是。接受它。
标签: python combinations