Lazy cartesian product with filters