我需要生成从给定字符集到给定范围的所有可能组合。喜欢,
charset=list(map(str,"abcdefghijklmnopqrstuvwxyz")) range=10
输出应该是
[a,b,c,d..................,zzzzzzzzzy,zzzzzzzzzz]
我知道我可以使用已经使用过的库来做到这一点。但是我需要知道它们的真正工作原理。如果有人可以用Python或任何可读的编程语言给我这种算法的注释代码,我将不胜感激。
如果您确实要蛮力,请尝试此操作,但这将花费您大量的时间:
your_list = 'abcdefghijklmnopqrstuvwxyz' complete_list = [] for current in xrange(10): a = [i for i in your_list] for y in xrange(current): a = [x+i for i in your_list for x in a] complete_list = complete_list+a
在一个较小的示例中,list =’ab’,而我们仅上升到5,将显示以下内容:
['a', 'b', 'aa', 'ba', 'ab', 'bb', 'aaa', 'baa', 'aba', 'bba', 'aab', 'bab', 'abb', 'bbb', 'aaaa', 'baaa', 'abaa', 'bbaa', 'aaba', 'baba', 'abba', 'bbba', 'aaab', 'baab', 'abab', 'bbab', 'aabb', 'babb', 'abbb', 'bbbb', 'aaaaa', 'baaaa', 'abaaa', 'bbaaa', 'aabaa', 'babaa', 'abbaa', 'bbbaa', 'aaaba','baaba', 'ababa', 'bbaba', 'aabba', 'babba', 'abbba', 'bbbba', 'aaaab', 'baaab', 'abaab', 'bbaab', 'aabab', 'babab', 'abbab', 'bbbab', 'aaabb', 'baabb', 'ababb', 'bbabb', 'aabbb', 'babbb', 'abbbb', 'bbbbb']