title: String Matching Algorithms
body: <p>I have a python app with a database of businesses and I want to be able to search for businesses by name (for autocomplete purposes).<br>
  For example, consider the names "best buy", "mcdonalds", "sony" and "apple".</p>
  
  <p>I would like "app" to return "apple", as well as "appel" and "ple". 
  "Mc'donalds" should return "mcdonalds".
  "bst b" and "best-buy" should both return "best buy".</p>
  
  <p>Which algorithm am I looking for, and does it have a python implementation?</p>
  
  <p>Thanks!</p>