while (i1 < len(a1) && i2 < len(a2)) {
if (a1[i1] < a2[i2]) {
r[k++] = a1[i1];
} else {
r[k++] = a2[i2];
}
}
while (i1 < len(a1)) r[k++] = a1[i1];
while (i1 < len(a2)) r[k++] = a2[i2];
Перебираем вообще все всевозможные пути достижения цели.