Может, тут дело в том, после получения результата из курсора нельзя второй раз его получить, надо запрос повторять.
Ты один раз его сделал в строке for как параметр и всё. Надо его внутри цикла запускать, возможно ещё раз, с индексом или как-то.
Вот это что?
Берем i-й элемент последовательности a, записываем в cc
Затем берем нулевой элемент cc (т.е. i-го элемента a) и записываем в a.
Это что вообще за ересь?
Федор, ну, есть подозрение, что первый забрал, и список того, что можно забрать, очистился. Какой-либо list.pop первому выдал ссылку, и всё. Гадать без кода трудно. Разбирать тонну кода неохота. Ты сам-то пытался код посмотреть? Есть подозрительные места?