Eu estou tentando fazer uma função que retorne max da lista aninhada?

Eu escrevi isso e está funcionando bem com tudo, mas quando tenho uma lista vazia em uma determinada lista (given_list=[[],1,2,3]) dizendo que o índice está fora da faixa. Qualquer ajuda?

def r_max (given_list):
    largest = given_list[0]
    while type(largest) == type([]):
        largest = largest[0]

    for element in given_list:
        if type(element) == type([]):
            max_of_elem = r_max(element)
            if largest < max_of_elem:
                largest = max_of_elem
        else:                           # element is not a list
            if largest < element:
                largest = element

    return largest

questionAnswers(6)

yourAnswerToTheQuestion