Чтобы перебрать все возможные пары (без повторов), вы можете использовать itertools.combinations(p,r)
:
import itertools
def sum_pairs(lst, total_sum):
for el in itertools.combinations(lst, 2):
if(sum(el)==total_sum):
return el
return None
print(sum_pairs([4,2,10,5,1], 6))
print(sum_pairs([4,2,10,5,1], 16))
print(sum_pairs([4,2,10,5,1], 3))
print(sum_pairs([4,2,10,5,1], 2))
Выход:
(4, 2)
None
(2, 1)
None
[Program finished]