Генерим диапазоны IP-адресов

Недавно столкнулся с тем, что VNC-сканнер подвисает на больших диапазонах IP. Конечно, давно юзать альтернативы (zmap, masscan или еще что), но это к делу не особо относится. В общем, появилась идея написать скрипт, который будет разбивать большой диапазон (к примеру 1.0.0.0-5.255.255.255) на много-много маленьких, а потом люто мешать эти мелкие диапазоны.
Тогда сканить будет относительно быстро (vnc по крайней мере не будет подвисать), беспалевно (получится, что мы будем сканить большой диапазон не за 1 раз, а в несколько подходов и с большими таймаутами).

В результате был написан говнокод, с которым я вас собираюсь познакомить:

Из диапазона 1.0.0.0-2.0.0.255 получится:

А чаще всего ничего не получится, потому что памяти не хватит)
Пусть пока помозолит глаза - быстрее перепишу.