Представьте себе либу, решающую такую задачу:
Есть набор объектов и набор функций, меняющих состояния этих обектов.
Библиотека определяет такую последовательность применений функций, чтобы из одного начального набора состояний объектов прийти к какому-то другому нужному состоянию.
Вот как бы вы это назвали? Пока я склоняюсь к variantor (variant & iterator)

Нет, тупой перебор всех возможных комбинаций.
Ну ты бы хоть на графы тогда переехал.
Переехал? Ну я дерево и делаю. Других идей всё равно пока нет.