想要列出 '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.html
import 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 个集群

我在 SQL 中有一个列出所有事件的表。我想要在 30 天前记录事件但不是在 [重复] 之后记录事件的用户

网页字体参考

python 显示!到~的字符

UVa227 -- puzzle

如何列出目录的所有文件?