: bütün kombinasyonlarını içeren bir liste oluşturarak uzun dizeleri için çok verimsiz olduğunu
>>> import itertools
>>> map(''.join, itertools.product('ABC', repeat=3))
['AAA', 'AAB', 'AAC', 'ABA', 'ABB', 'ABC', 'ACA', 'ACB', 'ACC', 'BAA', 'BAB', 'BAC', 'BBA', 'BBB', 'BBC', 'BCA', 'BCB', 'BCC', 'CAA', 'CAB', 'CAC', 'CBA', 'CBB', 'CBC', 'CCA', 'CCB', 'CCC']
Not - yerine üzerlerinden yineleme:
for string in itertools.imap(''.join, itertools.product('ABC', repeat=3)):
print string
tüm karakterleri almak ve sayıları string.uppercase + string.lowercase + string.digits
kullanın.
>>> from itertools import product
>>> from string import ascii_uppercase
>>> for combo in product(ascii_uppercase, repeat=3):
... print ''.join(combo)
...
AAA
AAB
...
ZZY
ZZZ
itertools.combinations()
ve itertools.permutations()
işiniz için doğru araçlar değildir:
Python 3 değişti, böylece "map" özelliği artık bir yineleyici döndürüyor. Pitonun <3.0 sürümüne sahip değilseniz, itertools.imap 'i kullanmanın ikinci önerisi gerekli değildir. – ngoue
Soru etiketli [etiket: python-2.7] ... – ThiefMaster
Doğru, efendim! – ngoue