while True: array = list(range(1, 16)) + [""] random.shuffle(array) if is_good([i for i in array if i != ""], math.floor(array.index("") / 4) + 1): break board = [array[i:i + 4] for i in range(0, 13, 4)] def is_good(array, row): array = array.copy() sum_of_all = row for i in range(15): for y in range(i + 1, 15): if array[y] < array[i]: sum_of_all += 1 return not (sum_of_all % 2)