Несколько методов, которые используются для получения цепочек случайных слов из заданного слова:
- Перебор всех возможных комбинаций. 1 Однако сложность этого алгоритма быстро растёт из-за большого количества комбинаций. 1
- Последовательное присоединение. 1 Нужно взять первое слово, взять следующее и попробовать присоединить его (слева или справа) к первому. 1 Если получилось — повторить для всех оставшихся слов. 1 Если исходный список пуст — найдена последовательность, если нет — перейти к следующему шагу. 1
- Цепи Маркова. 24 Нужно взять исходный текст и разбить его на слова. 2 Все слова, которые стоят рядом, соединить в пары. 2 Используя эти пары, составить словарь цепочек, где указано первое слово и все, которые могут идти после него. 2 Затем выбрать случайное слово для старта, задать длину текста на выходе и получить результат. 2
Также для генерации полного списка возможных комбинаций из заданного набора символов можно использовать встроенный модуль itertools в Python. 5