from random import randint, shuffle from itertools import permutations def urejen(s): return all(prej <= potem for prej, potem in zip(s, s[1:])) def uredi(s): for p in permutations(s): if urejen(p): s[:] = p return print(1/0) def uredi(s): while any(prej > potem for prej, potem in zip(s, s[1:])): shuffle(s) def uredi_stevko(s): t = [] for stevka in range(10): for e in s: if e % 10 == stevka: t.append(e) s[:] = t def uredi_po_stevki(s, stevka): kje = [0] * 10 deli = 10 ** stevka for e in s: kje[e // deli % 10] += 1 kam = [0] for e in kje: kam.append(kam[-1] + e) t = [None] * len(s) for e in s: t[kam[e // deli % 10]] = e kam[e // deli % 10] += 1 s[:] = t m = [randint(0, 10000000) for _ in range(20)] for i in range(8): uredi_po_stevki(m, i) print(m)