Для данного списка со строковыми цифрами я хочу вернуть разные строковые номера, которые могут быть сгенерированы с использованием всех элементов в списке (поэтому, если имеется 5 элементов, число должно состоять из 5 цифр).
Задача - вернуть возможные перестановки, наименьшую перестановку и максимальную перестановку в списке.
- ответ должен быть преобразован в целые числа
- Если на входе присутствует «0», он будет производить числа строк с начальными нулями, это не учитывается при их преобразовании в целые числа.
Теперь это мой код:
from itertools import permutations
def proc_arr(arr):
lst = [] # define new list
list_of_tuples = list(permutations(arr, len(arr))) # now they are tuples in a list
# convert to integers in list
separator = [map(str,x) for x in list_of_tuples]
together = [int(''.join(s)) for s in separator]
# append to new list and return the len of possible combinations, min and max value
lst.append(len(together))
lst.append(min(together))
lst.append(max(together))
#print(lst)
return lst
proc_arr(['1','2','2','3','2','3'])
Однако я не понимаю, почему я не получаю нужное количество перестановок.
вход: proc_arr (['1', '2', '2', '3', '2', '3']) выход: [60, 122233, 332221]
и я получаю [720, 122233, 332221]
другой пример ввода и вывода
input: proc_arr (['1', '2', '3', '0', '5', '1', '1', '3']) выход: [3360, 1112335, 53321110]