如何循环生成序列字符串?

2024-05-15 11:12:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个循环,在那里我可以使用循环生成字符串。我要实现的是创建一个从1个字符到5个字符的字符串集合。在

所以,从sting开始,我想转到1,但这是个数字,所以如果我只加上它们,这看起来很简单,但是当涉及到字母数字时,就变得棘手了。在

这是解释

我收集了字母数字字符作为字符串s = "123ABC",我想做的是,我想创造所有可能的1字串从它,所以我将有1,^{>},33A,^{>},B,^{>}之后,我想再增加一个数字的字符串长度的一个数字,这样我就可以得到{{},^{{},^{{},^{{},^{{}},{},},{CA,CBCC,我想把它提高到CCCCCC。我在循环中很困惑,因为我可以让它产生一个临时的刺,但循环内部来旋转角色是很棘手的

这就是我目前所做的

i = 0

strr = "123ABC"

while i < len(strr):
    t = strr[0] * (i+1)
    for q in range(0, len(t)):
        # Here I need help to rotate more
        pass
    i += 1

有谁能给我解释一下,或者给我指一个我能找到解决办法的资源吗?在


Tags: 字符串角色len字母数字字符cacc
2条回答

这是一个嵌套循环。不同深度的递归产生所有可能的组合。在

strr = "123ABC"

def prod(items, level):
    if level == 0:
        yield []
    else:
        for first in items:
            for rest in prod(items, level-1):
                yield [first] + rest

for ln in range(1, len(strr)+1):
    print("length:", ln) 
    for s in prod(strr, ln):
        print(''.join(s))

它也被称为cartesian product,并且在itertools中有一个对应的函数。在

您可能需要使用^{}函数:

import itertools

chars = '123ABC'
for i in xrange(1, len(chars)+1):
    print list(itertools.permutations(chars, i))

编辑: 要获取字符串列表,请尝试以下操作:

^{pr2}$

相关问题 更多 >