Your list_of_char() func returns a list, which you then print out. So you're seeing exactly what you're asking for.
If you want to print out strings, you need to either create the string in list_of_char() and return the string instead of a list. Or, you can take the returned list and print the elements of that list one at a time. Or you can convert the list of strings into a single string and print that out.
In the func you could change:
return my_new_list
to:
return '\n'.join(my_new_list)
which then would have the func return a single string.
In the alternative, you could change "main" from:
print(list_of_char([2,3]))
to:
print('\n'.join(list_of_char([2,3])))
Or, you could handle the list items one at a time (which now means not adding the extra newline (because you'll get one by default from print():
for line in list_of_char([2,3]):
print(line)