Старайтесь писать на бумаге каждую итерацию вашего алгоритма:
i = 0: 2 1 5 1 3 6
i = 1: 1 2 5 1 3 6
i = 2: 2 1 5 1 3 6
Ваша проблема в том, что внутренний цикл for l in range(len(lista)):
начинается каждый раз с 0, но вместо этого вы должны начинать с позиции i.Когда вы заканчиваете внутренний цикл, вы увеличиваете i до 1, и все, что есть до i, уже отсортировано.Если внутренний цикл перезапускается с начала, как в этом случае, у вас будет 1, что меньше 2 (при i = 1), вы меняете его снова.
lista=[2,1,5,1,3,6]
for i in range(len(lista)):
for l in range(i, len(lista)):
if i==l:
continue
if lista[l]<lista[i]:
temp=lista[i]
lista[i]=lista[l]
lista[l]=temp
Я рекомендую вам прочитать о сортировка вставок и сортировка выбора , чтобы лучше изучить этот алгоритм.