Something like this would work:
make_product_range(
make_counting_range(0, 3),
make_counting_range(2, 5),
make_counting_range(4, 10)
)
should return a range whose elements are (0, 2, 4), (0, 2, 5), etc.
Then as I recall, fusion has function object adapters for splitting
these up into separate arguments to a function.
I've attached a solution that handles the two argument case.