擅长:python、mysql、java
<p><a href="https://docs.python.org/3/library/itertools.html#itertools.combinations" rel="nofollow noreferrer">^{<cd1>}</a>是很自然的选择。为了避免重复,只需先将<code>list</code>转换为<code>set</code>。根据您是否需要有序的结果,有两种类似的解决方案。在</p>
<p><strong>已订购</strong></p>
<pre><code>from itertools import combinations
productcode = ['apple', 'orange', 'grape']
res_lst = sorted(map(sorted, combinations(set(productcode), 2)))
# [['apple', 'grape'], ['apple', 'orange'], ['grape', 'orange']]
</code></pre>
<p>我不知道你需要什么顺序,所以我把<em>内的</em>和<em>跨</em>子列表按字母顺序排序。在</p>
<p><strong>无序</strong></p>
<p>如果顺序在任何地方都不重要,那么您需要使用<code>set</code>项的<code>frozenset</code>项:</p>
^{pr2}$
<p>这是因为<code>set</code>项必须是不可变的;<code>frozenset</code>是{<cd3>}的不可变版本。这是一对自然的考验。例如:</p>
<pre><code>{'orange', 'apple'} in res_set # True
</code></pre>
<p>另一种方法是使用一组按字母顺序排序的元组。在</p>