Как скомбинировать все возможные числа из числа путём перестановки местами двух чисел PYTHON
Шапка(у числа может быть неограниченное количество цифр, тоесть может быть и число как 923749237 или 12340 и т.д.) должна быть только 1 смена местами двух цифр например 12340 - 42310 помогите пожалуйста
Ответы (2 шт):
Автор решения: Зарина
→ Ссылка
x = 12340
z = [int(y) for y in str(x)] # раскладываем число в список, состоящий из цифр
index_max = z.index(max(z)) # запоминаем индекс самого большого элемента списка
max_elem = z.pop(index_max) # удаляем этот элемент и запоминаем
first_elem = z.pop(0) # удаляем нулевой элемент (значение 1)
z.insert(0, max_elem ) # вставляем на 0 элемент максимальное значение
z.insert(index_max, first_elem) # вставляем на место удаленного максимального значения значение 1
Автор решения: TigerTV.ru
→ Ссылка
Вот так можно:
from itertools import combinations
a = "12340"
res = []
for i, j in combinations(range(len(a)), 2):
*b, = a
if b[i] != b[j]:
b[i], b[j] = b[j], b[i]
res.append(''.join(b))
print(res)
# ['21340', '32140', '42310', '02341', '13240', '14320', '10342', '12430', '12043', '12304']