你可以採取itertools
模塊的優勢,並使用一臺發電機,以漂亮乾淨地處理這個問題:
from itertools import count, product, islice
from string import ascii_uppercase
def multiletters(seq):
for n in count(1):
for s in product(seq, repeat=n):
yield ''.join(s)
給
>>> list(islice(multiletters('ABC'), 20))
['A', 'B', 'C', 'AA', 'AB', 'AC', 'BA', 'BB', 'BC', 'CA', 'CB', 'CC', 'AAA', 'AAB', 'AAC', 'ABA', 'ABB', 'ABC', 'ACA', 'ACB']
>>> list(islice(multiletters(ascii_uppercase), 30))
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD']
,如果您願意,您可以製作一個對象並逐個獲取它們:
>>> m = multiletters(ascii_uppercase)
>>> next(m)
'A'
>>> next(m)
'B'
>>> next(m)
'C'
[更新:我應該注意,雖然我一直都在Python和Excel之間傳遞數據 - 我正準備這樣做 - 實際上 - 並且從不需要此函數。但是,如果您有關於交換數據的最佳方式的具體問題,最好提出一個單獨的問題,而不是編輯此問題,因爲現在的問題有幾個答案。]
因此,您要求的是是與Excel用於列命名的列表相同嗎?在AZ之後,BA應該打印,還是應該停在52個字? – tonycoupland
你是正確的我正在寫這個函數把數據放在excel中 –