微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从aaaa转到zzzz python

如何解决从aaaa转到zzzz python

我需要找到一种使用python(aaaa,aaaab,aaa ... zzzz)从aaaa暴力到zzzz的方法。 与0000到9999类似。 是否有使用循环和列表的“魔术”方法

解决方法

您可以使用itertools.product简洁地完成此操作:

import itertools
import string

for elem in itertools.product(string.ascii_lowercase,repeat=5):
    ...

以下是此方法产生的前30个值的示例:

>>> values = itertools.product(string.ascii_lowercase,repeat=5)
>>> print(list(itertools.islice(values,30)))
[
    ('a','a','a'),('a','b'),'c'),# --Snip -- 
    ('a','x'),'y'),'z'),'b','d')
]

请注意,此序列中有26**5 == 11881376个值,因此您可能不想将它们全部存储在列表中。在我的系统上,这样的列表大约占用100 MiB。

,

这是一个非常“基本”的示例:

chars = 'abcdefghijklmnopqrstuvwxyz'
my_list = []

for c1 in chars:
    for c2 in chars:
        for c3 in chars:
            for c4 in chars:
                my_list.append(c1+c2+c3+c4)
                
print(my_list)
,

要知道您认为什么是“魔术”并不容易,但是我看不到魔术在循环中。
这是一种变体:

cs = 'abcdefghijklmnopqrstuvwxyz'
list(map(''.join,[(a,b,c,d) for a in cs for b in cs for c in cs for d in cs]))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。