求解python数组的任意组合

1、一数组a=[a,b,c,d,e,f,g]
2、求数组的顺序任意组合
例如,记得是顺序,不能颠倒顺序
[a]
[b]
[c]
[d]
[a,b]
[a,c]
[b,e,g]
[c,d,e,f]
[b,e,f,g]



def getArraySubSet(originArray):
    """
    :type originArray:list
    :rtype :listlist
    """
    result = [[]]
    size = len(originArray)
    for i in range(size):
        for j in range(len(result)):
            # 现有每个子集中添加新元素,作为新子集加入结果集中
            result.append(result[j]+[originArray[i]])
        # print(result)
    return result


# 测试
originArray = [1, 2, 3, 4]
subset = getArraySubSet(originArray)
print(subset)


img


#法一:遍历全部可能,把有重复的剃掉。
total = 0
num_list = [1,2,3,4]
for i in num_list:
    for j in num_list:
        for k in num_list:
            if (i!=j) and (i!=k) and (j!=k):
                print(i,j,k)
                total += 1
print(total)

#法二:⽤itertools中的permutations(表示排列)即可。
import itertools
total = 0
num_list = [1,2,3,4]
for i in itertools.permutations(num_list,3):
    print(i[0],i[1],i[2])
    total = total+1
print(total)

参考我以前写的,有帮助的话采纳一下哦!