input: Write a function to generate a fuzzy search algorithm in Python that can match strings with near similarities. The function should take in a query string, a list of choices, and a threshold value for the maximum allowed Levenshtein distance between the query and the choices. It should return a list of strings from the choices that are within the specified threshold distance from the query. If no matches are found, the function should return an empty list.
  assert find_matches("apple", ["apples", "orange", "pineapple", "appel"], 2)==["apples", "appel"]
  assert find_matches("python", ["pythin", "java", "ruby", "python3"], 1)==["pythin"]
  assert find_matches("banana", ["bananarama", "apple", "banaban", "orange"], 3)==["bananarama", "banaban"]
  assert find_matches("car", ["cat", "dog", "cart"], 1)==["car", "cart"]
  assert find_matches("blue", ["red", "green", "yellow"], 0)==[]
output: def find_matches(query, choices, threshold):
      from Levenshtein import distance
      return [choice for choice in choices if distance(query, choice) <= threshold]