繁体   English   中英

Python字符串替换为字符并逐个字母递增

[英]Python string replace with characters and increment letters by letter

目前我正在学习 python 脚本并试图获得以下输出

1BCD
2BCD
3BCD
11CD
21CD
31CD
12CD
22CD
32CD
13CD
23CD
33CD
111D
211D
311D
121D
221D
321D

等等......直到最后一个字符

如何实现? 我正在使用 python 3.0,请在下面找到我的代码:

import sys

def tv():
    GET = 'ABCD'
    INC = 0
    IGKINNER = 0
    COUNT = 0
    i = 0
    while (COUNT < 1):
        IGKINNER = IGKINNER + 1
        try:
            for h in range(len(GET)):
                print('GET', GET)
                INC = INC + 1
                if (INC == 1):
                    GET = GET.replace(GET[IGKINNER], chr(49), 1)
                if (INC == 2):
                    GET = GET.replace(GET[IGKINNER], chr(50), 1)
                if (INC == 3):
                    GET = GET.replace(GET[IGKINNER], chr(51), 1)
                if (INC >=4):
                    INC = 0
                    break
        except:
            COUNT = 3
    return

tv()

请帮助我,非常感谢

这很容易使用itertools.product实现。 下面的代码生成问题中指定的输出,但很容易将其概括为更多数字。

from itertools import product

base = 'ABCD'
for i in range(1, 5):
    s = base[i:]
    for t in product('123', repeat=i):
        print(''.join(t[::-1]) + s)

输出

1BCD
2BCD
3BCD
11CD
21CD
31CD
12CD
22CD
32CD
13CD
23CD
33CD
111D
211D
311D
121D
221D
321D
131D
231D
331D
112D
212D
312D
122D
222D
322D
132D
232D
332D
113D
213D
313D
123D
223D
323D
133D
233D
333D
1111
2111
3111
1211
2211
3211
1311
2311
3311
1121
2121
3121
1221
2221
3221
1321
2321
3321
1131
2131
3131
1231
2231
3231
1331
2331
3331
1112
2112
3112
1212
2212
3212
1312
2312
3312
1122
2122
3122
1222
2222
3222
1322
2322
3322
1132
2132
3132
1232
2232
3232
1332
2332
3332
1113
2113
3113
1213
2213
3213
1313
2313
3313
1123
2123
3123
1223
2223
3223
1323
2323
3323
1133
2133
3133
1233
2233
3233
1333
2333
3333

你对你想要什么的描述不是很清楚,但这会产生你想要的东西(每次都不打印GET ):

def tv():
    base = "ABCD"
    nums = "123"
    s4 = base[3]+nums
    s3 = base[2]+nums
    s2 = base[1]+nums
    for c4 in s4:
        for c3 in s3:
            for c2 in s2:
                for c1 in nums:
                    print(c1+c2+c3+c4)
            s2 = nums
        s3 = nums

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM