Таким образом, в настоящее время я генерирую последовательность символов в виде строки, используя:
def nth(lists, num):
res = []
for a in lists:
res.insert(0, a[num % len(a)])
num //= len(a)
return res
def generate_page(chars, length, iteration):
result = nth([chars] * length, iteration)
return "".join(result)
length = 15
seed = 16
number = generate_page('0123456789ABC', length, seed)
Но что я не могу обернуть, так это как генерировать последовательность символов, если я знаю, какбольшая часть каждого символа, который я хочу.
Например, скажем, я хочу сгенерировать последовательность, которая имела бы 1 "A", 3 "B" и 1 "C", как я мог добраться до любой договоренностииз "ABBBC"?
Я думаю, я бы просто конкатенировал список сумм, которые я знаю, я хочу, и затем расшифровал их как:
A = 1
B = 3
C = 1
listOfCharacters = ["A"]*A + ["B"]*B + ["C"]*C
>>> ['A', 'B', 'B', 'B', 'C']
random.seed(1)
listOfCharacters = random.shuffle(listOfCharacters)
>>> None
listOfCharacters = ''.join(listOfCharacters)
>>> TypeError
Но, очевидно, получаю ошибку TypeErrorна данный момент, и я даже не уверен, является ли это лучшим путем для получения всех перестановок без повторов с начальным числом.