I have a set of `N`

arrays and I need to compute the `N-fold`

Cartesian product.

Of all the generated ordered tuples I want to keep only the ones whose sum is equal to 1 (plus or minus a certain tolerance), e.g.

```
p = [[0.4,0.389],
[0.6,0.611]]
cartesian_product = [[0.4, 0.6],
[0.4, 0.611],
[0.389, 0.6],
[0.389, 0.611]]
filtered_cartesian_product = [[0.4, 0.6],
[0.389, 0.611]]
```

I solved this problem in Python using Itertools’ Product()

```
np.array([i for i in itertools.product(*p) if np.abs(np.sum(i)-1)<1e-4])
```

which works quite well. However, since I need to perform this task on a relatively big dataset (100 arrays with 100 entries each), speed and good memory management are crucial.

Could anyone suggest me a faster solution (not necessarily in Python)?

Source: Python Questions