You can use the next code:
import types
class A(object):
class B(object):
pass
class C(object):
pass
def enumerate_nested_classes(_class):
return [getattr(_class, n) for n in dir(_class) if not n.startswith('__')
and isinstance(getattr(_class, n), (type, types.ClassType))]
assert enumerate_nested_classes(A) == [A.B, A.C]
And print enumerate_nested_classes(A) prints [<class '__main__.B'>, <class '__main__.C'>]
NB. dir(_class) resulting list is sorted alphabetically, so when using assert enumerate_nested_classes(A) == [A.B, A.C] it is better to use: assert sorted(enumerate_nested_classes(A)) == sorted([A.B, A.C]).