Встала задача перебрать перестановки и выбрать из них те, которые удовлетворяют условиям.
Полным перебором ее решать не вариант - всего шестнадцать элементов, а 16! не самое маленькое число.

Я вижу решение задачи в отбросе веток, какие на каком-то этапе уже не удовлетворяют условию, но у меня нет ни единой мысли, как это реализовывать.

формулировка задачи