擅长:python、mysql、java
<p><a href="https://docs.python.org/3/library/itertools.html#itertools.permutations" rel="nofollow noreferrer">^{<cd1>}</a>-函数就是您要寻找的!您的问题实际上可以通过创建6个元素的所有排列,然后简单地将所有这些排列拆分为两个列表来解决</p>
<p>此代码应该可以解决您的问题:</p>
<pre class="lang-py prettyprint-override"><code>>>> from itertools import permutations
>>> lst = [['a'],['b'],['c'],['d'],['e'],['f'],['g'],['h']]
>>> [(x[:3], x[3:]) for x in permutations(lst, 6)]
[((['a'], ['b'], ['c']), (['d'], ['e'], ['f'])),
((['a'], ['b'], ['c']), (['d'], ['e'], ['g'])),
((['a'], ['b'], ['c']), (['d'], ['e'], ['h'])),
((['a'], ['b'], ['c']), (['d'], ['f'], ['g'])),
((['a'], ['b'], ['c']), (['d'], ['f'], ['h'])),
((['a'], ['b'], ['c']), (['d'], ['g'], ['h'])),
...
</code></pre>
<p>它不仅简单,而且速度快:</p>
<pre class="lang-py prettyprint-override"><code>>>> %timeit [(x[:3], x[3:]) for x in permutations(lst, 6)]
7.32 ms ± 94.1 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
</code></pre>