Подтвердить что ты не робот

Python Itertools.Permutations()

Почему itertools.permutations() возвращает список символов или цифр для каждой перестановки вместо того, чтобы просто возвращать строку?

Например:

>>> print([x for x in itertools.permutations('1234')])
>>> [('1', '2', '3', '4'), ('1', '2', '4', '3'), ('1', '3', '2', '4') ... ]

Почему он не возвращает это?

>>> ['1234', '1243', '1324' ... ]
4b9b3361

Ответ 1

itertools.permutations() просто работает таким образом. Он принимает произвольный итеративный аргумент и всегда возвращает итератор, получая кортежи. Он не имеет (и не должен) специальных строк. Чтобы получить список строк, вы всегда можете присоединиться к кортежам самостоятельно:

list(map("".join, itertools.permutations('1234')))

Ответ 3

Я не пробовал, но, скорее всего, должен работать

comb = itertools.permutations("1234",4)
for x in comb: 
  ''.join(x)    

Ответ 4

Пермутация может быть выполнена для строк и списка также, ниже приведен пример.

x = [1,2,3]

если вам нужно сделать перестановку в указанном выше списке

print(list(itertools.permutations(x, 2)))

# the above code will give the below..
# [(1,2),(1,3),(2,1)(2,3),(3,1),(3,2)]