def discoverSubclasses(cls):
    """Returns a list of all classes derived from the the supplied base
    class.
    
    Implementation based on ubuntu's answer to related question on
    StackOverflow [1]_.

    Parameters
    ----------

    cls: type
        The base to search from

    Returns
    -------

    list
        List of all classes that uses `cls` directly or indirectly.

    References
    ----------

    ..[1] "How can I find all subclasses of a given class in Python?"
    http://stackoverflow.com/questions/3862310/how-can-i-find-all-subclasses-of-a-given-class-in-python
    """

    return cls.__subclasses__() + [g for s in cls.__subclasses__() for
                                   g in discoverSubclasses(s)]