title: Implementing a Trie to support autocomplete in Python
body: <p>I'm trying to implement a data structure that supports autocomplete on a website.
  I've managed to implement an iterative version of a Trie. It supports the two primary methods of adding and searching in a Trie. 
  However now I need to add a method that returns all the words that begin with the following prefix. Can someone help me with this.</p>
  
  <pre><code>class Trie:
      def __init__(self):
          self.root = TrieNode()
  
      def insert(self, word):
          curr = self.root
          for letter in word:
              node = curr.children.get(letter)
              if not node:
                  node = TrieNode()
                  curr.children[letter] = node
              curr = node
          curr.end = True
  
      def search(self, word):
          curr = self.root
          for letter in word:
              node = curr.children.get(letter)
              if not node:
                  return False
              curr = node
          return curr.end
  
      def all_words_beginning_with_prefix(self, prefix):
          #I'm not sure how to go about this one.
  </code></pre>