Так возьмите массив [12, 12.1, 12] и прокрутите свой код.
Сами увидите, что ваша функция делает отнюдь не то, что вы заявляете.
Вам нужно делать не рекурсию, а сортировку по цене вверх и вложенный цикл.
Как только во внешнем цикле находится повтор, запускаете внутренний, чтобы определить, куда переставить текущий элемент. Переставляете, назначаете ему цену предыдущего + 0.1 и возвращаетесь на то же место внешнего цикла, поскольку массив сполз назад из-за перестановки.