def mult_comb(factors):
    result = set()
result.add(tuple(sorted(factors)))
for i, f1 in enumerate(factors):
    factors2 = list(factors[:i] + factors[i + 1:])
for k in range(i, len(factors2)):
    factors2[k] *= f1
result.update(mult_comb(tuple(factors2)))
factors2[k] /= f1
return result
Вернуть различные мультипликативные комбинации списка чисел в Python