Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.