from functools import reduce
[reduce(int.__mul__, (l[k] for k in range(len(l)) if 2 ** k & n + (n + n.
    bit_length()).bit_length())) for n in range(1, 2 ** len(l) - len(l))]
Вычислить все продукты для всех чисел в списке Python