def enumerate_ip_range (range, pref=''):
    """ Enumerates a list struture produced by `expand_ip`.
    Args:
        range (list of list of int): The enumerable list structure
        pref (str): The current prefix (used for recursion)
    Return:
        list of str: The enumerated list of IP addresses
    """
    separator = '' if pref == '' else '.' # Determine necessary separator.
    if len(range) == 0:
        return [pref] # Base case, just return prefix.
    ips = []
    for octet in range[0]:
        # Make recursive call.
        ips.extend(enumerate_ip_range(range[1:], pref + separator + str(octet)))
    return ips