Como desenhar a forma de união de retângulos em python

Estou usando o Matplotlib e o Python. Eu quero desenhar a união de um grupo de retângulos. Os retângulos podem ser conectados ou desconectados. Também quero atribuir uma cor diferente aos lados em comum com outros grupos, sabendo que não há regiões sobrepostas entre grupos. Você tem alguma ideia?

Obrigado pela ajuda.

Eu adicionei código para mais precisão, eu tentei fazer uma coleção para cada grupo de retângulos e dar-lhes a mesma cor de borda, mas como obter apenas uma forma (o perímetro do grupo de retângulos)?

import numpy as np
import matplotlib
from matplotlib.patches import Rectangle
from matplotlib.collections import PatchCollection
import matplotlib.pyplot as plt


fig=plt.figure()
ax=fig.add_subplot(111)
patches = []
ListCollections=[]

while Cd1:
  while Cd2:
      patches += Rectangle((x,y), 400, 200)

  p = PatchCollection(patches, cmap=None)
  p.set_edgecolor('red')
  p.set_facecolor(None)
  ListCollections.append(p)
  patches =[]


for l in ListCollections:
   ax.add_collection(p)

plt.show()

questionAnswers(1)

yourAnswerToTheQuestion