Вызов определенной перестановки с использованием числового индекса

Я использую функцию itertools.permutations для создания списка всех комбинаций символов в списке, а затем объединяю результаты вместе, например так:

from itertools import permutations

def iterate(it):
    for x in it:
        print("".join(list(x)))

k_c = "1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM. "

iterate(permutations(list(k_c),10))

Вот что он производит:

>>>1234567890
   123456789q
   123456789w
   123456789e
   123456789r
   123456789t
   123456789y
   123456789u
   123456789i
   123456789o
   ...

Проблема, которая у меня есть, это; Мне нужно создать такие строки длиной 100 символов, например: 1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDJ1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDJ и программа остановится, так как это занимает слишком много времени t runiterate(permutations(list(k_c),100)) Мне было интересно, сможет ли программа просто вернуть определенную строку, например эту :

permutation_string(k_c,100,87)
>>> 1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDJ1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDJ

И он вернет 87-е значение в списке. Я понимаю, что это кажется странным вопросом, но любая помощь будет оценена по достоинству. Спасибо


person Python_Person    schedule 09.04.2020    source источник
comment
Можете ли вы иметь перестановки длины больше, чем длина последовательности?   -  person Dani Mesejo    schedule 09.04.2020
comment
@DaniMesejo Да, это позволяет   -  person Python_Person    schedule 09.04.2020


Ответы (1)


Если вы ищете i-ю перестановку данной строки/списка, тогда этот ответ будет работать: https://stackoverflow.com/a/46132585/8189212

person Hal    schedule 02.05.2020