
Вот что я придумал. Это должно работать, но очевидным отрицательным моментом является то, что это медленно и неэффективно. Поэтому мне нужна помощь в разработке лучшего алгоритма.
А также мой код:
from itertools import permutations
def generate_combinations(lst, length):
for combo in permutations(lst, length):
yield ''.join(map(str, combo))
# List setup
lst = [2, 2, 2, 2, 4, 4, 5, 5, 5, 6, 6, 6, 8, 8]
length = 14
FiveLst = []
for combination in generate_combinations(lst, length):
arv = [int(x) for x in str(combination)]
if arv[0] == 5 and arv[1] == 8:
print(combination)
FiveLst.append(combination)
for Fiveno in FiveLst:
difmin = 0
difplus = 0
for combination in generate_combinations(lst, length):
if combination > Fiveno:
difplus += 1
else:
difmin += 1
difference = difmin-difplus
if difference == 5617961:
print(f"Combination found!: {combination}")
break
print("Process complete!")
exit()
Подробнее здесь: https://stackoverflow.com/questions/782 ... een-greate