На Delphi 7 разработать алгоритм перебора слов
На Delphi 7 нужно написать алгоритм реализующий получение в Tstringlist списка предложений на основе перебора вариантов представленных в виде шаблона. Пример шаблона:
{слово1|слово2|слово3} {слово4|слово5|слово6}.
На выходе в Tstringlist мы должны получить все возможные комбинации слов в виде предложений:
слово1 слово4
слово1 слово5
слово1 слово6
слово2 слово4
и т.д.
кол-во блоков {} может быть любым. Кол-во вариантов слов внутри блоков {} может быть любым. Между блоками могут быть слова-константы, например может быть такой шаблон:
{Привет|Здорово} тебе, {как дела|как сам}?
Алгоритм должен работать максимально быстро.
Алгоритм представить в виде простой программы. В процессе работы программы должен отображаться счетчик полученных предложений. В любой момент процесс нужно иметь возможность остановить.