import random def sort_digits(number): """ Sort the digits of a number >>> sort_digits(123) 123 >>> sort_digits(321) 123 >>> sort_digits(231) 123 """ digits_list = [int(c) for c in str(number)] # DEMO 1 sorted_list = sorted(digits_list) # DEMO 2 #sorted_list = my_sorter(digits_list) sorted_number = sum([ (10**(len(sorted_list) - (i+1)))*sorted_list[i] for i in range(len(sorted_list))]) return sorted_number def my_sorter(lst): if len(lst) < 2: return lst my_sorted = my_sorter(lst[1:]) if lst[0] < my_sorted[0]: return [lst[0]] + my_sorted elif lst[0] > my_sorted[0]: return [my_sorted[0]] + my_sorter([lst[0]] + my_sorted[1:]) else: return [lst[0]] + my_sorter def random_number(): return random.randint(0, 2147483647)