class Motif: # ... def coup_compose(self, *args): coups = [] if self.on(*args): a_traiter = self.coup_simple(*args) while a_traiter: coup, arrivee = a_traiter.pop(0) coups.append((coup, arrivee)) for voisin in coup.coup_simple(*arrivee): if voisin not in a_traiter and voisin not in coups: a_traiter.append(voisin) return coups