Работающая версия с ленивой генерацией перестановок