<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def alignPronunciations(pronI, pronA):
    '''
    Align the phones in two pronunciations
    '''
    
    # First prep the two pronunctions
    pronI = [char for char in pronI]
    pronA = [char for char in pronA]
    
    # Remove any elements not in the other list (but maintain order)
    pronITmp = pronI
    pronATmp = pronA

    # Find the longest sequence
    sequence = _lcs(pronITmp, pronATmp)

    # Find the index of the sequence
    # TODO: investigate ambiguous cases
    startA = 0
    startI = 0
    sequenceIndexListA = []
    sequenceIndexListI = []
    for phone in sequence:
        startA = pronA.index(phone, startA)
        startI = pronI.index(phone, startI)
        
        sequenceIndexListA.append(startA)
        sequenceIndexListI.append(startI)
    
    # An index on the tail of both will be used to create output strings
    # of the same length
    sequenceIndexListA.append(len(pronA))
    sequenceIndexListI.append(len(pronI))
    
    # Fill in any blanks such that the sequential items have the same
    # index and the two strings are the same length
    for x in range(len(sequenceIndexListA)):
        indexA = sequenceIndexListA[x]
        indexI = sequenceIndexListI[x]
        if indexA < indexI:
            for x in range(indexI - indexA):
                pronA.insert(indexA, "''")
            sequenceIndexListA = [val + indexI - indexA
                                  for val in sequenceIndexListA]
        elif indexA > indexI:
            for x in range(indexA - indexI):
                pronI.insert(indexI, "''")
            sequenceIndexListI = [val + indexA - indexI
                                  for val in sequenceIndexListI]
    
    return pronI, pronA