https://mytecharm.com.co/post/next-permutation-explained-step-by-step-i387u9