def next_tokens_in_sequence(observed, current):
    """ Given the observed list of tokens, and the current list,
    finds out what should be next next emitted word
    """
    idx = 0
    for word in current:
        if observed[idx:].count(word) != 0:
            found_pos = observed.index(word, idx)
            idx = max(idx + 1, found_pos)
        # otherwise, don't increment idx
    if idx < len(observed):
        return observed[idx:]
    else:
        return []
Given the observed list of tokens, and the current list,
    finds out what should be next next emitted word