Every Possible Cycle Length
Pyth, 11 8 bytes
.<W-0zz1
A lot more boring than my previous answer.
Every number that contains a 0 digit maps to itself. Any other number maps to the number that has its digits rotated by 1. So for example:
1 -> 1
10 -> 10
15 -> 51 -> 15
104 -> 104
123 -> 231 -> 312 -> 123
Python 2, 56 55 54 bytes
n=input()
a=b=1
while a+b<=n:a+=b;b+=1
print(n+~a)%b+a
Here's the first 21 outputs:
[1, 3, 2, 6, 4, 5, 10, 7, 8, 9, 15, 11, 12, 13, 14, 21, 16, 17, 18, 19, 20]
The pattern is obvious if we break the list up into chunks like so:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
[1] [3, 2] [6, 4, 5] [10, 7, 8, 9] [15, 11, 12, 13, 14] [21, 16, 17, 18, 19, 20]
Pyth, 25 bytes
+hK/*J/h@h*8tQ2 2tJ2%-QKJ
This is the same sequence as @Sp3000, but with a closed form. The closed form is: