Ejecutar longitud codificación Python

La pregunta es: escriba una función que tome, como argumento, una lista de caracteres y devuelva una lista que refleje la codificación de longitud de ejecución de esa lista. Los elementos en la lista devuelta siguen el siguiente patrón: los índices pares contienen los caracteres y los índices impares contienen el número de veces que el carácter se repite consecutivamente.

Cuando escribo una lista en la función, no itera a lo largo de toda la lista. Funcionará para listas de longitudes más cortas, pero no para las más largas. No estoy seguro de cómo solucionarlo.

def runLengthEncoding(myList):
    aList=[]
    count=1
    for i in range(1,len(myList)):
        if myList[i] == myList[i-1]:
            count=count+1
        else:
            aList.append(myList[i-1])
            aList.append(count)
            count=1
            if i == (len(myList)-1):
                aList.append(myList[i])
                aList.append(count)
    return aList

Respuestas a la pregunta(1)

Su respuesta a la pregunta