4
def gera_huffman(simbolosOriginal, probabilidadesOriginal):
# gera_huffman(['a', 'b','c', 'd'], [5, 2, 1, 2])
    simbolos = simbolosOriginal  
    probabilidades = probabilidadesOriginal  
    lista = [] 
    while (len(simbolos) > 2):
        ordem = np.sort(probabilidades)
        ordemIndex = np.argsort(probabilidades)        
        novaProbabilidades = ordem[0]+ordem[1]
        novoSimbolo = simbolos[ordemIndex[1]] + simbolos[ordemIndex[0]]
        print novaProbabilidades , novoSimbolo, simbolosOriginal[ordemIndex[0]],simbolosOriginal[ordemIndex[1]]
        print simbolos
        simbolos.remove(simbolosOriginal[ordemIndex[0]])
        print simbolos
        simbolos.remove(simbolosOriginal[ordemIndex[1]])
        print simbolos
        probabilidades.remove(probabilidadesOriginal[ordemIndex[0]])
        probabilidades.remove(probabilidadesOriginal[ordemIndex[1]])
        probabilidades.append(novaProbabilidades)        
        simbolos.append(novoSimbolo)
        print simbolos
        simbolosOriginal = simbolos
        probabilidadesOriginal = probabilidades
        if(len(simbolos) <= 2):
           lista.append([simbolos, probabilidades])
           lista.sort(reverse = True) 
           return lista
Error: symbols.remove(symbolosOriginal[ordemIndex[1]])
Indexerror: list index out of range
In the various prints I’m doing on the list simbolos, just before the error I’m getting:
simbolosOriginal[ordemIndex[0]]= 'd'
simbolosOriginal[ordemIndex[1]] = 'bc'
The list simbolos is ['a', 'bc']. 
Whereas in the print simbolosOriginal[ordemIndex[1]] has the value 'bc' and he’s on the list I don’t understand why he says index is out of range.
How can I fix this?