<p><br>
> I have a need for a Cartesian product of multiple ranges. I see there's been a discussion here (Dec 2011) as well as a request posted (#7128). It seems to me that the request deals with a multidimensional product -- which is what I need -- while the implementation by Timon Gehr deals only with the two-dimensional case.</p>

<p>I have one in a dsource project:</p>
<p><a href="http://www.dsource.org/projects/dranges">http://www.dsource.org/projects/dranges</a></p>
<p>It's in the algorithm.d module, look for 'combinations'</p>
<p>Docs are there:</p>
<p><a href="http://svn.dranges.org/projects/dranges/trunk/dranges/doc/algorithm.html">http://svn.dranges.org/projects/dranges/trunk/dranges/doc/algorithm.html</a></p>
<p>For a generalization of this, you may want to have a look into the rangeofranges.d module (docs: same than algorithm, or click on the 'package' tab on the left).</p>
<p>I think a .zip is given on the main page.<br>
Alternatively, it's also on github:</p>
<p><a href="http://www.github.com/PhilippeSigaud/dranges">www.github.com/PhilippeSigaud/dranges</a><br><br></p>