Понимание списка здесь будет хорошо работать.Попробуйте это:
from itertools import permutations
x = [1, 2, 3, 3, 5, 5, 5, 6, 6, 7, 8, 9, 9]
target_number = 10
solutions = [pair for pair in permutations(x, 2) if sum(pair) == 10]
print('Solutions:', solutions)
Вывод:
Solutions: [(1, 9), (1, 9), (2, 8), (3, 7), (3, 7), (5, 5), (5, 5), (5, 5), (5, 5), (5, 5), (5, 5), (7, 3), (7, 3), (8, 2), (9, 1), (9, 1)]
По сути, это понимание списка рассматривает все пары, которые возвращает permutations(x, 2)
, но сохраняет только течья общая сумма равна 10.