Как сделать правильный вывод элементов?

Есть код:

from itertools import permutations

n = str(input())
s = list(n)


for l in s:
    perm = permutations(s)

for i in list(perm):
    print(i)

Нужно сделать так,чтобы,допустим,при вводе ABC программа выводила не:

('A', 'B', 'C')
('A', 'C', 'B')
('B', 'A', 'C')
('B', 'C', 'A')
('C', 'A', 'B')
('C', 'B', 'A')

а выводила:

ABC
ACB
BAC
BCA
CAB
CBA

Ответы (1 шт):

Автор решения: CrazyElf

Склеить в строку элементы списка, кортежа или другой коллекции можно легко:

print(''.join(i))

P.S. А вообще весь ваш код можно сократить до одной строки, потому что половина преобразований у вас лишние:

from itertools import permutations

print(*map(''.join, permutations(input())), sep='\n')

Вывод при вводе ABC:

ABC
ABC
ACB
BAC
BCA
CAB
CBA

P.P.S. Немного поясню всё же по исходному коду:

from itertools import permutations

n = str(input())     # str лишнее - input() и так выдаёт строку
s = list(n)          # list не нужен, permutations и сам проитерирует строку


for l in s:          # цикл не нужен - вы делаете каждую итерацию одно и то же
    perm = permutations(s)

for i in list(perm): # list не нужен, цикл нормально проитерируется по perm и без него
    print(i)
→ Ссылка