let rec dig l = function |0 -> l |x -> dig (x%10 :: l) (x/10) let rec gen l = function |0 -> l |n -> gen (dig l n) (n-1)