如何从aa ...到zz生成一系列字符串

时间:2013-04-24 10:22:26

标签: python string

我正在尝试创建一个Python程序,它接受一个字符串并根据它显示排列。

例如。

如果用户输入“[AAA] Grim”,它应该生成从“aaa Grim”开始,然后是“aab Grim”,然后是“aac Grim”到“zzz Grim”等字样。 或者如果用户输入“[AA] Grim”,它应该生成“aa Grim”,“ab Grim”,“ac Grim”到“zz Grim”

很抱歉问题标题不清楚。我不确定如何在没有例子的情况下说出我需要的东西。 :)

3 个答案:

答案 0 :(得分:0)

如果我理解你的意思,以下将会这样做:

import re
import string
import itertools

user_in = input("Enter string: ")
p_len = user_in.index(']') - user_in.index('[')
text = user_in[user_in.index(']')+1:]
print('\n'.join([ ''.join(p) + text for p in itertools.combinations_with_replacement(string.ascii_lowercase,r=p_len-1)]))

将产生(提取物):

Enter string: [AA] Grim
aa Grim
ab Grim
ac Grim
ad Grim
ae Grim

答案 1 :(得分:0)

input = '[AAA] Grim'
n = len(input.split(' ')[0]) - 2
s = input[n+2:]
a = [''.join(x)+s for x in itertools.product(string.ascii_lowercase, repeat=n)]

答案 2 :(得分:0)

>>> import string
>>> ltrs = string.lowercase
>>> [''.join([a,b]) for a in ltrs for b in ltrs]

代码从这里:https://mail.python.org/pipermail/tutor/2005-July/040117.html

我找到了,效果很好!