如何避免比较列表中的重复字符串

Goo*_*ose 1 python string list

我有一个大约一百个字符串的列表,每个字符串在2 for循环中相互比较,这是一个非常基本的代码概述:

string_list = ["PII", "AZO", "CVCO", "MOD"]

for x in string_list:
    for y in string_list:
        if x != y:
            print (x, y)
Run Code Online (Sandbox Code Playgroud)

哪个印刷品:

PII AZO
PII CVCO
PII MOD
AZO PII
AZO CVCO
AZO MOD
CVCO PII
CVCO AZO
CVCO MOD
MOD PII
MOD AZO
MOD CVCO
Run Code Online (Sandbox Code Playgroud)

如你所见,很多字符串被比较两次(PII - AZO和AZO - PII等)

我一直试图弄清楚如何使用2个计数变量来避免这个问题,但是我在摸不着头脑,必须有一个更容易/ pythonic的方式这样做,所以没有重叠的字符串比较,有没有人知道如何实现这一点?

Python 3,谢谢.

编辑:

预期结果:

PII AZO
PII CVCO
PII MOD
AZO CVCO
AZO MOD
CVCO MOD
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 10

用途itertools.combinations():

>>> string_list = ["PII", "AZO", "CVCO", "MOD"]
>>> from itertools import combinations
>>> for a, b in combinations(string_list, 2):
...     print(a, b)
... 
PII AZO
PII CVCO
PII MOD
AZO CVCO
AZO MOD
CVCO MOD
Run Code Online (Sandbox Code Playgroud)

您的版本生成了排列.