if we check for the builtins (excluding errors, dunder methods, warnings; one could include them also if required)
import keyword, re
x = sorted([i for i in list(keyword.__builtins__) if not re.search('.*Error|Warning|__', i)], key=len)
and then run,
l1 = []
l2 = []
for i in x:
try:
A = type('A', (eval(i),), {})
l1.append(i)
except TypeError:
l2.append(i)
then,
l1
gives,
['int', 'map', 'set', 'str', 'zip', 'dict', 'list', 'type', 'bytes', 'float',
'super', 'tuple', 'filter', 'object', 'complex', 'property', 'reversed',
'bytearray', 'enumerate', 'frozenset', 'Exception', 'SystemExit',
'classmethod', 'staticmethod', 'BaseException', 'StopIteration',
'GeneratorExit', 'KeyboardInterrupt', 'StopAsyncIteration']
while,
l2
gives,
['id', 'abs', 'all', 'any', 'bin', 'chr', 'dir', 'hex', 'len', 'max', 'min',
'oct', 'ord', 'pow', 'sum', 'eval', 'exec', 'hash', 'iter', 'next', 'repr',
'vars', 'None', 'True', 'bool', 'open', 'help', 'ascii', 'input', 'print',
'round', 'False', 'range', 'slice', 'divmod', 'format', 'locals', 'sorted',
'compile', 'delattr', 'getattr', 'globals', 'hasattr', 'setattr', 'credits',
'license', 'display', 'runfile', 'dreload', 'callable', 'Ellipsis', 'execfile',
'copyright', 'breakpoint', 'isinstance', 'issubclass', 'memoryview',
'get_ipython', 'NotImplemented']
the list l1
contains builtins which could act as a base class.