in reply to Combinations of multiple arrays

Iterator::Array::Jagged does exactly what you're trying to do