def get_all_subclasses(cls, subclasses=None): """Return all subclasses list for given class.""" subclasses = subclasses or set() for child_cls in cls.__subclasses__(): if child_cls not in subclasses: subclasses.add(child_cls) get_all_subclasses(child_cls, subclasses) return list(subclasses)