<p>我已经尝试了很多技巧,但我相信有一个平滑的方法来完成这个任务。在</p>
<p>假设我有两个列表,其中包含相同数量的项目(每个4个):</p>
<pre><code>a = ['a', 'b', 'c', 'd']
b = [1, 2, 3, 4]
</code></pre>
<p>在保持秩序的同时,我想用所有可能的方式合并这些列表。输出示例:</p>
^{pr2}$
<p>关键是每个列表都必须保持其顺序,这样考虑到一个项在列表中的位置,它就不能位于输出中的另一个项之前。例如,输出不能是:</p>
<pre><code>a, b, **d**, c, 1... > d precedes c whereas c is before d in the original list
1, **4**, a, b, 3.... > 4 precedes 3 whereas 3 is before 4 in the original list
</code></pre>
<p>我想我们的想法是用所有可能的方法将第二个列表合并到第一个列表中。一个充分发挥作用的例子是:</p>
<pre><code>a = [a, b]
b = [1, 2]
</code></pre>
<p>期望输出:</p>
<pre><code>ab12
a1b2
a12b
1ab2
1a2b
12ab
</code></pre>
<p>我该怎么做?<code>itertools</code>是否有能力以某种方式做到这一点?或者有别的方法可以完成吗?请帮忙!在</p>