import bisect


def main() -> None:
    with open("wordlist.txt", "r") as f:
        word_list: list[str] = f.read().split()

    prefix = ""
    while True:
        prefix += input(f"Current prefix: {'None' if prefix == '' else prefix}\nAdd to prefix: ")
        print(prefixSearch(word_list, prefix))


def prefixSearch(lst: list[str], prefix: str) -> list[str]:
    begin_index = bisect.bisect_left(lst, prefix)
    end_index = bisect.bisect_left(lst, prefix + chr(127))

    return lst[begin_index:end_index]


if __name__ == "__main__":
    main()