Код будет корректно работать только в том случае, если переменные именуются так, как указано в стартовом сообщении (a1, a2, ..., aN | b1, b2, ..., bN), т.е. сначала какая-то статичная часть, а затем числа по-порядку.
// Начальный индекс.
int start_index = 1;
// Конечный индекс, включительно...