Cómo dibujar la forma de unión de rectángulos en python

Estoy usando Matplotlib y Python. Quiero dibujar la unión de un grupo de rectángulos. Los rectángulos se pueden conectar o desconectar. También quiero asignar un color diferente a los lados en común con otros grupos, sabiendo que no hay regiones superpuestas entre los grupos. ¿Tiene alguna idea?

Gracias por tu ayuda.

Agregué código para mayor precisión, traté de hacer una colección para cada grupo de rectángulos y darles el mismo color de borde, pero ¿cómo obtener solo una forma (el perímetro del grupo de rectá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()

Respuestas a la pregunta(1)

Su respuesta a la pregunta