In steps:
1. As input I have a `List<Word>`, logically formatting a line of text
2. Each `Word` consists of a `List<Symbol>`, being the letters
3. Every `Symbol` has a `List<SymbolChoice>`, being the alternative letters which it could also be -according to the OCR-
4. I create n-grams of all the words I have
5. I convert the obtained n-grams to a `List<Symbol>`, consisting of the symbols inside the words of th en-gram, without spaces
6. Of every `List<Symbol>`, I construct all possible symbol-choice-sequences via recursion