#python_3x #python_37 #перестановка
Необходимо с момощью генератора вывести все перестановки списка в виде строки, начиная с первого элемента и до их (неопределённого) полного количества. Пример: arr = ['1','2','3'] for perm in all_perms(): print(perm) Должно вывести: 1 2 3 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 123 (и так далее) Пробовал со стандартными функциями в itertools, но проблема в том, что там сразу выводится список из кортежей, что не подходит, так как каждая перестановка должна быть обработана в цикле. Заранее спасибо.
Ответы
Ответ 1
Это не перестановки, а размещения с повторениями. import itertools def f(seq): for n in range(1, len(seq) + 1): yield from itertools.product(seq, repeat=n) for row in f('123'): print(''.join(row)) 1 2 3 11 12 13 21 22 23 31 32 33 111 112 ...
Комментариев нет:
Отправить комментарий