Прибытие Таноса

Заметим, что перестановок из 8 цифр всего 8!, то есть 40320. Значит можно просто перебрать все перестановки из 8 цифр, и проверить, что первые 4 образуют корректный год, следующие две цифры образуют корректный месяц, а последние две цифры образуют корректный день в этом месяце. Что бы перебрать все перестановки, достаточно написать рекурсивный перебор или воспользоваться стандартный функцией next_permutatuoion в c++, или аналогичными в других языках. Что бы вывести только уникальные даты, достаточно их положить в стандартную структуру данных множество, например set в c++.