Gamme complète d'éléments

sujet

1. Entrez la liste ['a', 'b', 'c'], sortez le tableau complet des éléments de la liste : [['a', 'b', 'c'], ['a', 'c' , 'b'], ['b', 'a', 'c'], ['b', 'c', 'a'], ['c', 'a', 'b'], [' c' , 'b', 'a']].

2. Lorsqu'il y a des éléments en double dans la liste, la combinaison avec le même élément sera supprimée du résultat.
Par exemple : entrée ['a', 'b', 'b'], sortie [['a', 'b', 'b'], ['b', 'a', 'b'], [' b ', 'b', 'a']]

1.Code

def all_pailie(S):
    if len(S) <= 1:
        return [S]
    ls = []
    for i in range(len(S)):
        for j in all_pailie(S[0:i] + S[i+1:]):
            ls.append([S[i]] + j)
    return ls

print(all_pailie(['a','b','c']))

2.Code

def all_pailie(S):
    if len(S) <= 1:
        return [S]
    ls = []
    for i in range(len(S)):
        for j in all_pailie(S[0:i] + S[i+1:]):
            if ([S[i]] + j) in ls:
                continue
            ls.append([S[i]] + j)
    return ls

print(all_pailie(['a','b','b']))

Résumer

Le code 1 donne les résultats de permutation complets de différents éléments, et le code 2 supprime le même résultat en tenant compte des éléments répétés.

Je suppose que tu aimes

Origine blog.csdn.net/a_13572035650/article/details/128320984
conseillé
Classement