生成基于正则表达式的字符串的所有可能组合的列表

Generate a list of all possible combinations of a regular expression based string

这不是一个简单的"all possible combinations"问题。

编辑:正则表达式只是一个固定长度的字符串,每个索引都有不同的字母和非字母数字组合...

给定一个固定长度的正则表达式,在数据库中计算和存储所有组合的最快方法是什么,包括保存到数据库的速度。从一开始,给定正则表达式到拥有每种组合的任何类型的数据库?

我所做的,成功但慢得离谱,只是创建一个长度为固定长度正则表达式的数组,每个元素包含该位置的每个可能字符,我用一些脚本生成了它。然后用 SQL 服务器连接从头到尾打开阵列,一次插入 10 种可能性。它非常慢,我们正在谈论一个 7/8 个字符的字符串,在任何给定位置最多有 36 种可能性。花了几天时间。

所以,我的问题是什么是技术、语言和算法的最佳组合来最快完成这个问题?

长度为 8 且由 36 个可能的字符组成的可能字符串的数量:

36^8 = 2821109907456 = 2,8 trillion

以任何方式生成那么多字符串都需要 "considerable" 时间。让我们看看将它们插入数据库需要多长时间。假设一个非常好的数据库性能,我们可以取 20000 inserts/sec。在这种情况下,总插入时间预计为:

2,8 * 10^12 / 20000 = 140 million seconds
140 * 10^6 / (60*60*24) = 1620 days

所以,我猜这回答了你的问题:1620 DAYS!