"Комбинаторика для программистов" - читать интересную книгу автора (Липский.)