【问题标题】:Generate all possibilities of a set of alphanumeric with custom conditions生成具有自定义条件的一组字母数字的所有可能性
【发布时间】:2021-03-06 12:17:38
【问题描述】:
我想生成一组长度为 64 的字母数字“abcdef0123456789”的所有可能性
我知道可能性的数量是 PB 的巨大,所以我想用 3 个条件来限制它:
-
字母或数字在单个字符串中的使用次数不得超过 8 次,
例如:aaababaabaab 不可接受
aaaabaaabaa是可以接受的
-
相邻的相同字母或数字不超过 3 个
例如:aaaab 不可接受
aaaba是可以接受的
-
排除使用集合的1个或2个字符的选项
例如:“bcdef0123456789”没有 a
我已经在互联网上搜索了 3 天,但没有得到答案,请您帮忙吗?
提前谢谢你
【问题讨论】:
标签:
python
string
arraylist
conditional-statements
generator
【解决方案1】:
互联网无法回答所有具体问题 :) 您需要将问题分解成小块并进行搜索。
如果您想解决此类问题,您可能需要查找回溯。这是解决约束问题的通用方法。您将进行递归,从空字符串开始,在每个步骤中您将尝试向字符串中添加一个字符。如果其中一条规则被破坏,您将退出递归。
无论如何我认为这是不可能的,我有根据的猜测是可能性的数量远远超过“peta byte”。
>>> 16 ** 64
115792089237316195423570985008687907853269984665640564039457584007913129639936
当然,您的限制会减少这一点,但我认为不会超过几位数。