def radix_sort(input_list):
RADIX = 10
placement = 1
max_digit = max(input_list)
while placement <= max_digit:
buckets: list[list] = [list() for _ in range(RADIX)]
for i in input_list:
tmp = int((i / placement) % RADIX)
buckets[tmp].append(i)
a = 0
for b in range(RADIX):
for i in buckets[b]:
input_list[a] = i
a += 1
# move to next
placement *= RADIX
return input_list
if __name__ == '__main__':
test = [4,3,2,1]
print(radix_sort(test))