How to write all characters in a font to a 3D text object?
Well, it depends on what "all characters" are, but generally you should be able to just loop over a range of code points or character values, casting with chr.

For example, if you want all printable ASCII characters:

text_string = ''.join([chr(i) for i in range(32, 127)])
bpy.ops.font.text_insert(text=text_string)
# [SPACE]!"#$%&amp;\'()*+,-./0123456789:;&lt;=&gt;?@ABC...XYZ[\]^_`abc...xyz{|}~


Here, I just used a list comprehension to go from ASCII 32 to ASCII 126, inclusive. You could use a different range to suit your needs.

You can't really "separate characters by languages" because it's not bijective. Which language does A belong to? Practically every language that uses a Latin-variant alphabet. How about &uuml;? Spanish, German, to name two.

You could separate characters by their Unicode blocks, like Basic Latin (U+0000 to U+007F), Latin-1 Supplement (U+0080 to U+00FF, contains stuff like &cent;, &copy;, &sect;, &otilde;, &thorn;, etc.), etc.

For example, if you wanted two separate text objects:

blocks = { 'basic_latin' : (0x20, 0x7E), 'latin-1-supp': (0xA0, 0xFF) }
for k, v in blocks.items():
    t = ''.join([chr(i) for i in range(v[0], v[1] + 1)])
    bpy.ops.font.text_insert(text=t)