https://dev.to/jeyaprasadr/next-permutation-105n