创建所有可能的三元组的多维数组

Create multidimensional array of all possible triplets

我有一个包含加密符号列表的数组,例如。 (因为有一千多个)

symbols = ['agve', 'age', 'ageur', 'agfi']

我需要创建一个多维数组,其中包含这些的所有可能组合,例如。

combinations = [
                 ["agve", "age", "ageur"],
                 ["agve", "age", "agfi"],
                 ["age", "ageur", "agfi"],
               ...

生成的数组不应有重复排列,例如 ["agve", "age", "ageur"]["agve", "ageur", "age"]

老实说,我什至不知道从哪里开始。我能得到的最接近的是建立一个 包含一些对的数组(然后,不写了,目标是逐渐搜索并添加缺失的组合):

    array_length = len(symbols)
    combinations = []
    current      = 0
    for i in range(array_length-3):
        combinations.append([symbols[current], symbols[current+1], symbols[current+2]])
        current += 1

如有任何帮助,我们将不胜感激。我项目的其余部分是用 Python 3.8.

编写的

这会占用很多内存,你能一次考虑每个三胞胎吗?无论哪种方式,最简单的方法可能是 itertools.combinations.

from itertools import combinations

# Consider each individually
for triplet in combinations(symbols, 3):
    #DO SOMETHING
    pass

# Create the multidimentional array as you wanted
triplets = list(combinations(symbols, 3))