想要列出 'abcdefghijklmnopqrstuvwxyz0123456789' 的所有 4 个字符组合
Posted
技术标签:
【中文标题】想要列出 \'abcdefghijklmnopqrstuvwxyz0123456789\' 的所有 4 个字符组合【英文标题】:Want to make a list of all 4 character combinations of 'abcdefghijklmnopqrstuvwxyz0123456789'想要列出 'abcdefghijklmnopqrstuvwxyz0123456789' 的所有 4 个字符组合 【发布时间】:2021-01-21 04:22:40 【问题描述】:我想列出所有可能的字母和所有数字的组合,所以从
aaaa aaab aaac aaad aaae
一直到
z999 zzz9 0009
以及介于两者之间的一切
我已经有了
import sys
import os
tester = open(r"available.txt","a")
lol =[:100]
['1','2','3','4','5','6','7','8','9','0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
lol=list(itertools.combinations(4))
for comb in lol:
tester.write(str(comb))
和类似的行,但它们似乎都有错误。 任何帮助将不胜感激,在此先感谢。
【问题讨论】:
哦!我有一个算法……用于 C++……ideone.com/UpwKvC 最后几个不是9997、9998、9999吗? 但他们似乎都有错误向我们展示错误,而不是含糊地说你有错误。 请提供预期的MRE。显示中间结果与预期结果的偏差。我们应该能够将您的代码块粘贴到文件中,运行它并重现您的问题。这也让我们可以在您的上下文中测试任何建议。 “他们似乎都有错误”不是问题规范。 另外,请阅读itertools
的文档。它具有完全涵盖此用例的其他方法。 Stack Overflow 并不打算取代现有的教程和文档。我们希望您在此处发布之前完成这项研究。请这样做并更新您的帖子 - 或者,如果您解决了问题,只需将其删除。
【参考方案1】:
你应该检查 itertools
https://docs.python.org/3/library/itertools.htmlimport itertools
itertools.combinations('abcdefghijklmnopqrstuvwxyz0123456789',4)
[('a', 'b', 'c', 'd'), ('a', 'b', 'c', 'e'), ('a', 'b', 'c', 'f'), ... ]
[ "".join(c) for c in itertools.combinations('abcdefghijklmnopqrstuvwxyz0123456789',4) ]
['abcd', 'abce', 'abcf', 'abcg', 'abch', ...]
文档显示了各种选项之间的区别,具体取决于顺序或重复是否重要
product('ABCD', repeat=2)
AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD
permutations('ABCD', 2)
AB AC AD BA BC BD CA CB CD DA DB DC
combinations('ABCD', 2)
AB AC AD BC BD CD
combinations_with_replacement('ABCD', 2)
AA AB AC AD BB BC BD CC CD DD
【讨论】:
【参考方案2】:尝试使用itertools.product
函数。另外,虽然没有必要,但我建议对所有字符使用string
import string
import itertools
chars = string.digits+string.ascii_lowercase
orderings = list(itertools.product(chars, repeat=4))
【讨论】:
以上是关于想要列出 'abcdefghijklmnopqrstuvwxyz0123456789' 的所有 4 个字符组合的主要内容,如果未能解决你的问题,请参考以下文章
我正在尝试使用 python boto3 列出 aws ECS 集群中的所有集群,它最多只能列出 100 个集群,我想要 300 个集群