Имея алфавит из букв AZ и цифр 0-9, как получить все 1296 возможных комбинаций, например:
['AA', 'AB', ..., 'AZ', 'A0', 'A1', ..., 'Z9', '0A', '0B', ..., '98', '99']
В качестве побочного вопроса, как называется этот тип системы счисления?
Имея алфавит из букв AZ и цифр 0-9, как получить все 1296 возможных комбинаций, например:
['AA', 'AB', ..., 'AZ', 'A0', 'A1', ..., 'Z9', '0A', '0B', ..., '98', '99']
В качестве побочного вопроса, как называется этот тип системы счисления?
Текущие предложения неверны. Например, комбинации с заменой не дадут вам AB
и BA
одновременно, только первый. И permutations
не будет AA
, BB
и т. Д.
Вместо этого вы должны использовать itertools.product
.
Например:
import string
import itertools
combinations_generator = itertools.product(string.ascii_uppercase + string.digits,
repeat=2)
combinations = list(map(''.join, combinations_generator))
print(len(combinations))
Это даст вам ровно 1296 комбинаций.
combinations_generator
будет генерировать кортежи, такие как ('A', 'A')
, ('A', 'B')
и т. Д.
И с map(''.join, combinations_generator)
мы объединим их вместе, как 'AA'
, 'AB'
и т. Д.
вы можете использовать перестановки, чтобы получить список.
Например
import string
import itertools
series = [''.join(r) for r in itertools.permutations([str(i) for i in range(10)]+[str(c) for c in string.ascii_uppercase], 2)]
print(series)
print(len(series)) # got 1260 here
itertools
комбинации с заменой - person Mr. T   schedule 28.12.2017