def find_words(starting_lv: dict, prefix: str, letters: str = '') -> list:
    """Finds all the words that branch off from a starting level

    Args:
        starting_lv (dict): The level to perform the search on
        prefix (str): The string of characters that you start the search with
        letters (str): The string of characters that are assembled from the starting point to the current point in
        the trie (current point meaning the level that this recursive method is at)
    Returns:
        list: A list that contains all words formed from the given level
    """
    answer = []
    for k, v in starting_lv.items():
        if k != 'end' and k != 'final' and k != 'size':
            answer += find_words(v, prefix + letters + k)
        if k == 'end':
            answer.append(prefix + letters)
    return answer