def splits(word_str):
    """
    generates all possible splits of a word (e.g. 'abc' -> ('', 'abc'), ('a', 'bc'), ('ab', 'c') ('abc', '') )
    :param word_str: the word as string
    :return: generator for all possible splits for the word
    """
    return ((word_str[:i], word_str[i:]) for i in range(len(word_str) + 1))