The args kwarg of threading.Thread expects an iterable, and each element in that iterable is being passed to the target function.
Since you are providing a string for args:
t = threading.Thread(target=startSuggestworker, args=(start_keyword))
each character is being passed as a separate argument to startSuggestworker.
Instead, you should provide args a tuple:
t = threading.Thread(target=startSuggestworker, args=(start_keyword,))
# ^ note the comma