input: from typing import List
  
  def find_matches(query: str, choices: List[str], threshold: int) -> List[str]:
      """
      Generate a fuzzy search algorithm that matches strings with near similarities. The algorithm uses the Levenshtein distance to determine the similarity between the query and each choice. Matches with a Levenshtein distance less than or equal to the given threshold are returned.
  
      >>> find_matches("apple", ["apples", "appel", "banana"], 2)
      ['apples', 'appel']
      >>> find_matches("kitten", ["sitting", "kitting", "kitten"], 1)
      ['kitting', 'kitten']
      """
output:     from Levenshtein import distance
      
      matches = []
      for choice in choices:
          if distance(query, choice) <= threshold:
              matches.append(choice)
      
      return matches