from itertools import compress, product
def findPairs(lst, K):
return [pair for pair in (set(compress(lst,mask)) for mask in product(*[[0,1]]*len(lst))) if sum(pair) >= K ]
# Driver code
lst = [10, 20, 30, 40, 50, 90, 100, 101]
K = 100
print(findPairs(lst, K))
output
[{101}, {100}, {100, 101}, {90, 101}, {90, 100}, {90, 100, 101}, {50, 101}, {50, 100}, {50, 100, 101}, {50, 90}, {50, 101, 90}, {50, 100, 90}, {50, 101, 100, 90}, {40, 101}, {40, 100}, {40, 100, 101}, {40, 90}, {40, 90, 101}, {40, 90, 100}, {40, 90, 100, 101}, {40, 50, 101}, {40, 50, 100}, {40, 50, 100, 101}, {40, 50, 90}, {40, 50, 101, 90}, {40, 50, 100, 90}, {100, 101, 40, 50, 90}, {101, 30}, {100, 30}, {100, 101, 30}, {90, 30}, {90, 101, 30}, {90, 100, 30}, {90, 100, 101, 30}, {50, 101, 30}, {50, 100, 30}, {50, 100, 101, 30}, {50, 90, 30}, {50, 101, 90, 30}, {50, 100, 90, 30}, {100, 101, 50, 90, 30}, {40, 101, 30}, {40, 100, 30}, {40, 100, 101, 30}, {40, 90, 30}, {40, 90, 101, 30}, {40, 90, 100, 30}, {100, 101, 40, 90, 30}, {40, 50, 30}, {40, 50, 101, 30}, {40, 50, 100, 30}, {100, 101, 40, 50, 30}, {40, 50, 90, 30}, {101, 40, 50, 90, 30}, {100, 40, 50, 90, 30}, {100, 101, 40, 50, 90, 30}, {20, 101}, {100, 20}, {100, 20, 101}, {90, 20}, {90, 20, 101}, {100, 90, 20}, {100, 90, 20, 101}, {50, 20, 101}, {100, 50, 20}, {100, 50, 20, 101}, {50, 20, 90}, {50, 101, 20, 90}, {100, 50, 20, 90}, {100, 101, 50, 20, 90}, {40, 20, 101}, {40, 100, 20}, {40, 100, 20, 101}, {40, 90, 20}, {40, 90, 20, 101}, {40, 100, 90, 20}, {100, 101, 40, 20, 90}, {40, 50, 20}, {40, 50, 20, 101}, {40, 100, 50, 20}, {100, 101, 40, 50, 20}, {40, 50, 20, 90}, {101, 40, 50, 20, 90}, {100, 40, 50, 20, 90}, {100, 101, 40, 50, 20, 90}, {20, 101, 30}, {100, 20, 30}, {100, 20, 101, 30}, {90, 20, 30}, {90, 20, 101, 30}, {100, 90, 20, 30}, {100, 101, 20, 90, 30}, {50, 20, 30}, {50, 20, 101, 30}, {100, 50, 20, 30}, {100, 101, 50, 20, 30}, {50, 20, 90, 30}, {101, 50, 20, 90, 30}, {100, 50, 20, 90, 30}, {100, 101, 50, 20, 90, 30}, {40, 20, 101, 30}, {40, 100, 20, 30}, {100, 101, 40, 20, 30}, {40, 90, 20, 30}, {101, 40, 20, 90, 30}, {100, 40, 20, 90, 30}, {100, 101, 40, 20, 90, 30}, {40, 50, 20, 30}, {101, 40, 50, 20, 30}, {100, 40, 50, 20, 30}, {100, 101, 40, 50, 20, 30}, {40, 50, 20, 90, 30}, {101, 40, 50, 20, 90, 30}, {100, 40, 50, 20, 90, 30}, {100, 101, 40, 50, 20, 90, 30}, {10, 101}, {10, 100}, {10, 100, 101}, {10, 90}, {10, 101, 90}, {10, 100, 90}, {10, 101, 100, 90}, {10, 50, 101}, {100, 10, 50}, {100, 10, 50, 101}, {10, 50, 90}, {10, 101, 50, 90}, {100, 10, 50, 90}, {100, 101, 10, 50, 90}, {40, 10, 101}, {40, 10, 100}, {40, 10, 100, 101}, {40, 10, 90}, {40, 10, 101, 90}, {40, 10, 100, 90}, {100, 101, 40, 10, 90}, {40, 10, 50}, {40, 10, 50, 101}, {40, 100, 10, 50}, {100, 101, 40, 10, 50}, {40, 10, 50, 90}, {101, 40, 10, 50, 90}, {100, 40, 10, 50, 90}, {100, 101, 40, 10, 50, 90}, {10, 101, 30}, {10, 100, 30}, {10, 100, 101, 30}, {10, 90, 30}, {10, 101, 90, 30}, {10, 100, 90, 30}, {100, 101, 10, 90, 30}, {10, 50, 101, 30}, {100, 10, 50, 30}, {100, 101, 10, 50, 30}, {10, 50, 90, 30}, {101, 10, 50, 90, 30}, {100, 10, 50, 90, 30}, {100, 101, 10, 50, 90, 30}, {40, 10, 101, 30}, {40, 10, 100, 30}, {100, 101, 40, 10, 30}, {40, 10, 90, 30}, {101, 40, 10, 90, 30}, {100, 40, 10, 90, 30}, {100, 101, 40, 10, 90, 30}, {40, 10, 50, 30}, {101, 40, 10, 50, 30}, {100, 40, 10, 50, 30}, {100, 101, 40, 10, 50, 30}, {40, 10, 50, 90, 30}, {101, 40, 10, 50, 90, 30}, {100, 40, 10, 50, 90, 30}, {100, 101, 40, 10, 50, 90, 30}, {10, 20, 101}, {100, 10, 20}, {100, 10, 20, 101}, {10, 20, 90}, {10, 101, 20, 90}, {100, 10, 20, 90}, {100, 101, 10, 20, 90}, {10, 101, 20, 50}, {100, 10, 20, 50}, {100, 101, 10, 50, 20}, {10, 90, 20, 50}, {101, 10, 50, 20, 90}, {100, 10, 50, 20, 90}, {100, 101, 10, 50, 20, 90}, {40, 10, 20, 101}, {40, 100, 10, 20}, {100, 101, 40, 10, 20}, {40, 10, 20, 90}, {101, 40, 10, 20, 90}, {100, 40, 10, 20, 90}, {100, 101, 40, 10, 20, 90}, {40, 10, 20, 50}, {101, 40, 10, 50, 20}, {100, 40, 10, 50, 20}, {100, 101, 40, 10, 50, 20}, {40, 10, 50, 20, 90}, {101, 40, 10, 50, 20, 90}, {100, 40, 10, 50, 20, 90}, {100, 101, 40, 10, 50, 20, 90}, {10, 20, 101, 30}, {100, 10, 20, 30}, {100, 101, 10, 20, 30}, {10, 20, 90, 30}, {101, 10, 20, 90, 30}, {100, 10, 20, 90, 30}, {100, 101, 10, 20, 90, 30}, {10, 20, 50, 30}, {101, 10, 50, 20, 30}, {100, 10, 50, 20, 30}, {100, 101, 10, 50, 20, 30}, {10, 50, 20, 90, 30}, {101, 10, 50, 20, 90, 30}, {100, 10, 50, 20, 90, 30}, {100, 101, 10, 50, 20, 90, 30}, {40, 10, 20, 30}, {101, 40, 10, 20, 30}, {100, 40, 10, 20, 30}, {100, 101, 40, 10, 20, 30}, {40, 10, 20, 90, 30}, {101, 40, 10, 20, 90, 30}, {100, 40, 10, 20, 90, 30}, {100, 101, 40, 10, 20, 90, 30}, {40, 10, 50, 20, 30}, {101, 40, 10, 50, 20, 30}, {100, 40, 10, 50, 20, 30}, {100, 101, 40, 10, 50, 20, 30}, {40, 10, 50, 20, 90, 30}, {101, 40, 10, 50, 20, 90, 30}, {100, 40, 10, 50, 20, 90, 30}, {100, 101, 40, 10, 50, 20, 90, 30}]
reference: https://stackoverflow.com/a/6542458/9526787