Kann dieser Python-Code effizienter sein?

Ich habe Code geschrieben, um herauszufinden, wie viele Teilzeichenfolgen einer Zeichenfolge Anagrammpaare sind. Die Funktion zum Finden vonanagram(anagramSolution) ist von Komplexität O (N). Die Teilzeichenfolgefunktion hat eine Komplexität von weniger als N Quadrat. Aber dieser Code hier ist das Problem. Kann es weiter optimiert werden?

for i in range(T):
    x = raw_input()
    alist = get_all_substrings(x)

    for k, j in itertools.combinations(alist,2):
        if(len(k) == len(j)):
            if(anagramSolution(k,j)):
                counter +=1

    counterlist.append(counter)
    counter = 0

Dasalist kann Tausende von Elementen (Teilmengen) enthalten. Das Hauptproblem ist die Schleife. Das Durchlaufen aller Elemente nimmt viel Zeit in Anspruch. Gibt es eine schnellere oder effizientere Möglichkeit, dies zu tun?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage