Пример для наглядности:
У меня есть 10 элементов. Я хочу построить все возможные варианты последовательностей из этих 10 элементов. По комбинаторике это, вроде, формула

- т.е.

комбинаций.
Есть ли какие-то общие правила о том, как осуществлять перебор? Или эти правила надо придумывать? Или генерировать случайную последовательность и проверять, была ли она уже?
А если даже проверять, то существует способ, как это сделать быстро, кроме как использование алгоритмов поиска и их вариаций?