Не относится напрямую к панде, но может быть полезен если необходимо генерировать карту, состоящую из нескольких типов поверхности, например вода, земля и горы. 
 Алгоритм абстрагирован от какой-либо конкретной реализации карты, поэтому потребуется передать две callback функции для работы с вашим вариантом. Первая функция должна принимать кортеж (x,y) и возвращать тип поверхности, находящийся по этим координатам. 
 Вторая - должна принимать кортеж (x,y), тип поверхности и устанавливать принятый тип в координаты x y  Конструктор класса FractalMapGen принимает следующие параметры: 
 sample - список или кортеж вариантов поверхности. Элементы любого типа. 
 getCallback - указатель на функцию с помощью которой генератор будет получать тип поверхности по координатам 
 setCallback - указатель на функцию с помощью которой генератор будет устанавливать тип поверхности по координатам 
 dimension - размер карты (x,y) 
 step - величина шага - количество клеток, на которые будет делиться поле в каждой итерации. Должен быть > 1. Размеры карты должны без остатка делиться на шаг. В идеале - должны быть степенью шага. 
 метод generate принимает 2 параметра и возвращает True в случае успешной генерации: 
 showProgress - показывать прогресс генерации (0 - не поазывать; 1 - простой вывод процентов (по умолчанию); 2 - расширенный вывод, корректно работает только в unix-based терминалах, по сути нафиг не нужен - это я экспериментировал )) 
 maxIters - ограничение кол-ва итераций (0 - максимально возможное (по умолчанию); целое число > 0 - ограничить итерации этим числом; целое < 0 - вычесть из максимально возможного количества итераций данное число) 
 Можно назначить шаблон для генерации карты в виде двухмерного массива, элементами которого являются типы местности или значение None, которое будет заполнено случайным образом. Размерность массива так же должна быть кратна шагу. шаблон устанавливается до генерации методом setTemplate. 
 setTemplate принимает шаблон и возвращает True в случае успешного применения. 
 Пример 1: в качестве карты используется изображение. Работа с изображением через PIL (должна быть установлена) 
 
Code
from fractalMG import FractalMapGen 
 from PIL import Image, ImageDraw 
 sx,sy = 128,128 
 colors = ((255,0,0),(0,255,0),(0,0,255),(250,150,50)) 
 image = Image.new("RGB", (sx,sy), (0,0,0,0)) 
 fg = FractalMapGen(colors, image.getpixel, image.putpixel, (sx,sy), 4) 
 fg.generate() 
 image.save("./test1.png", "PNG") 
 del image
  
  Пример2: в качестве карты используется массив из символов. Применён шаблон 
 
Code
from fractalMG import FractalMapGen 
 sx,sy = 24,24 
 tiles = ('_','#','^') 
 field = [[None for y in xrange(sy)] for x in xrange(sx)] 
             
 def getS(pos): 
       x,y = pos 
       return field[x][y] 
          
 def setS(pos, val): 
       x,y = pos 
       field[x][y] = val 
 tmp = (('_',None,None,'#'), 
          ('^','_','#','^'), 
          ('^','#','_','^'), 
          ('#',None,None,'_')) 
 fg = FractalMapGen(tiles, getS, setS, (sx,sy), 4) 
 fg.setTemplate(tmp) 
 fg.generate() 
 for y in xrange(sy): 
       print '' 
       for x in xrange(sx): 
           print field[x][y],
 _ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ # # # # # # # # # # # 
 _ ^ ^ ^ ^ ^ ^ ^ _ ^ ^ ^ # # # # # # # # # # # # 
 _ ^ ^ ^ ^ ^ _ _ _ ^ ^ ^ # # # # # # ^ ^ ^ ^ # # 
 ^ ^ ^ ^ ^ ^ _ _ _ _ ^ ^ # # # # # # ^ ^ ^ ^ # # 
 ^ _ _ _ _ ^ _ _ _ _ ^ ^ # # # # # # ^ ^ ^ ^ ^ ^ 
 ^ _ _ _ ^ ^ ^ _ _ _ ^ ^ # # # # # # # # ^ ^ ^ ^ 
 _ _ _ ^ ^ ^ ^ _ _ ^ ^ ^ # # # # # # ^ # ^ ^ ^ ^ 
 _ _ ^ _ _ _ ^ _ _ _ _ _ # _ _ _ ^ ^ _ # ^ ^ ^ ^ 
 _ ^ ^ ^ ^ _ _ _ _ _ _ _ # # _ _ _ ^ _ ^ # ^ ^ # 
 ^ ^ ^ ^ _ _ _ _ _ _ _ _ _ _ _ ^ _ ^ ^ # # # ^ # 
 ^ ^ ^ ^ _ _ _ _ _ ^ _ _ _ _ _ ^ ^ ^ ^ ^ # # # # 
 ^ ^ ^ ^ # _ ^ _ _ _ _ _ _ _ _ # ^ ^ ^ # # # # # 
 ^ ^ ^ ^ # _ ^ ^ ^ ^ _ _ _ _ # # # _ _ _ # # # # 
 ^ ^ ^ ^ # # # # ^ ^ ^ _ _ _ # # # _ # # # # # # 
 ^ ^ ^ # # # # ^ # ^ ^ _ _ _ # # # # # # # # # # 
 ^ ^ ^ ^ # # # # # ^ ^ ^ ^ _ # # # # # # _ # _ _ 
 ^ ^ ^ # # # # # ^ ^ ^ ^ ^ ^ # # # # # # _ # _ _ 
 # # ^ # # # # # # ^ ^ ^ ^ ^ ^ ^ _ _ _ _ _ _ _ _ 
 # # # # # # ^ ^ ^ ^ ^ # # # ^ ^ ^ # _ _ _ _ _ _ 
 # # # # # # # ^ # ^ ^ # # ^ ^ # _ # _ _ _ _ _ _ 
 # # # # # # # # # # # # # ^ # # # _ _ _ _ _ _ _ 
 # # # # # # # # # # # ^ ^ ^ # _ _ _ _ _ _ _ _ _ 
 # ^ ^ # # # # # # # # # ^ ^ # # _ _ _ _ _ _ _ _ 
 # ^ ^ # # # # # # # # # # # # # _ _ _ _ _ _ _ _