def partition1(max_range, S):
    max_range = np.asarray(max_range, dtype=int)
a = np.indices(max_range + 1)
b = a.sum(axis=0) <= S
return a[:, (b)].T
Создание массива numpy со всеми комбинациями чисел, сумма которых меньше заданного числа