def make_trigrams(i: Iterable[T])-> Iterable[Tuple[Optional[T], Optional[T], Optional[T]]]:
q = deque([None, None, None])<EOL>def nxt():<EOL><INDENT>q.append(x)<EOL>q.popleft()<EOL>return tuple(c if c is not None else '<STR_LIT:U+0020>' for c in q)<EOL><DEDENT>for x in i:<EOL><INDENT>yield nxt()<EOL><DEDENT>if q[-<NUM_LIT:1>] is not None:<EOL><INDENT>x = None<EOL>yield nxt()<EOL><DEDENT>
Compute all trigrams of an iterable and yield them. You probably want
to do something like:

>>> t = set(make_trigrams('hi there'))