2014-11-14 53 views
-3

(CentOS的),我需要生成一個字符列表(新線),如:如何生成字符列表A - ZZZZZ

A 
B 
C 
... 

AA 
AB 
AC 
... 

一路

ZZZZZ 

任何人都可以幫助一個bash或perl腳本,或者可能是python代碼嗎?

感謝

+2

我不明白是什麼序列是。爲什麼'AA'出現在'A'之後,而不是'B'? 'AZ'後面是什麼?如果您甚至無法用英文定義規則,則無法將其轉換爲代碼。 – abarnert 2014-11-14 23:20:25

+0

請顯示你的嘗試。 – Paolo 2014-11-14 23:21:52

+2

此外,StackOverflow不是「爲我寫這個代碼」服務。嘗試自己寫一些東西,並解釋你卡在哪裏,有人可以幫助你。如果你只是想讓別人爲你做,你必須聘請一個承包商。 – abarnert 2014-11-14 23:22:01

回答

0
import itertools,string 

with open("output.txt","w") as f: 
    for i in range(1,6): 
     f.write("\n".join(map(str,itertools.product(string.ascii_uppercase,repeat=i)))) 
     f.write("\n") 

可能;)

+1

我不認爲'str'是你想要在排列上映射的東西。也許'''.join'?另外,爲什麼'列表(...)'? – abarnert 2014-11-14 23:30:38

+1

原因IM啞巴:P ...是的,我知道瓦特/'str'但我想這會給他的工作至少一個小部分做:P – 2014-11-14 23:32:57

+1

根據OP的意見,'itertools.product'可能是有用的也是。 – TidB 2014-11-14 23:33:00

8

Perl的++操作適用於非數字字符串做到這一點。

perl -E'my $x = "A"; say $x++ while $x ne "AAAAAA"' 
+0

哈甚至比我的好:) – 2014-11-14 23:43:18

0

擊:

printf %s\\n {A..Z} {A..Z}{A..Z} {A..Z}{A..Z}{A..Z} {A..Z}{A..Z}{A..Z}{A..Z} {A..Z}{A..Z}{A..Z}{A..Z}{A..Z} 

(這還不算快,但如果你有足夠的內存來構建一個73MB的命令行,它會正常工作。)

+0

這個慶典線是美好的,只有71M(!)。非常感謝! – sharpy1064 2014-11-16 04:25:42