if letter in self.children:
    child = self.children[letter]
else:
    child = Node(letter, index == n - 1)
self.children[letter] = child
child.add(letters, n, index + 1)

def load_dictionary(path):
    result = Node()
for line in open(path, 'r'):
    word = line.strip().lower()
result.add(word)
return result
words = load_dictionary('dictionary.txt')
most efficient data structure for a read-only list of strings (about 100,000) with fast prefix search