擅长:python、mysql、java
<p>我想另一个答案是,为了回应这个问题:</p>
<blockquote>
<p>I've written it out on my whiteboard and it all seems to have a pattern, I just haven't found it yet.</p>
</blockquote>
<p>这是一种模式。在</p>
<p>假设您只有两个列表要合并。你可以通过做一个网格找到所有的组合。在</p>
<pre><code> black blue
+------------+------------+
coat | black coat | blue coat |
+------------+------------+
hat | black hat | blue hat |
+------------+------------+
</code></pre>
<p>如您所见,有2*2个组合。如果有30种颜色和14种衣服,你将有30*14=420种组合。在</p>
<p>当您添加更多列表时,模式将继续。不是二维矩形,而是一个三维的长方形数组,或者最终得到一个<em>n</em>维的超矩形。不管怎样,组合的总数总是所有列表长度的乘积。在</p>
<p>如果你知道你有多少个列表,嵌套循环是一种自然的组合方式。在</p>
^{pr2}$
<p>如果列表以字典顺序开始,并且没有重复项,则输出也将按字典顺序。在</p>