我正在嘗試創建一個Python程序,它接受一個字符串並顯示基於該字符串的排列。如何從aa ...生成一系列字符串到zz
例如。
如果用戶輸入「[AAA] Grim」,則應該生成從「aaa Grim」,然後「aab Grim」,然後「aac Grim」到「zzz Grim」等字。 或者如果用戶輸入「[AA ]嚴酷的「它應該產生」一個嚴峻「,」ab嚴峻「,」交流嚴峻「,以」zz嚴峻「
對不明問題標題。我不確定如何在沒有示例的情況下輸入我所需要的內容。 :)
我正在嘗試創建一個Python程序,它接受一個字符串並顯示基於該字符串的排列。如何從aa ...生成一系列字符串到zz
例如。
如果用戶輸入「[AAA] Grim」,則應該生成從「aaa Grim」,然後「aab Grim」,然後「aac Grim」到「zzz Grim」等字。 或者如果用戶輸入「[AA ]嚴酷的「它應該產生」一個嚴峻「,」ab嚴峻「,」交流嚴峻「,以」zz嚴峻「
對不明問題標題。我不確定如何在沒有示例的情況下輸入我所需要的內容。 :)
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)]
如果我明白你的意思是下面會做什麼:
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
如果用戶輸入 「死神」?無論如何,看看['itertools.product'](http://docs.python.org/2/library/itertools.html#itertools.product)。您可以將它應用於['string.ascii_lowercase'](http://docs.python.org/2/library/string.html#string.ascii_lowercase)或'ascii_uppercase'。 – 2013-04-24 10:25:56
我編輯了你的標題和標籤。另外,你有什麼想法如何解決這個問題? – georg 2013-04-24 10:31:16