What is the highest base that I can convert to without having my program become incredibly complicated?
In ASCII, base 127. However, that will be hard to read because of the upper-case/lower-case things looking similar, and the non-printable ASCII characters requiring a lot of complex escapes.
You're better limiting things to about base 36 because you can use digits and letters without any confusing ambiguity.
In Unicde, base 65536 or some such, depending on how many Unicode characters you want to deal with.
I'm thinking Base 9, because after 10 (which is already given), the bases start to use letters. Am I correct?
You're sort-of correct.
Standard ASCII has 9 digit symbols. You're not forced to use letters, but it's pretty common to use letters.
You could use lots of Unicode symbols that are neither letters nor digits.
I'm attempting to do this without modules.
That's not terribly relevant.
Now read other Stackoverflow questions on Base Conversion.
Here's a starter: Base 62 conversion
Here's the search: https://stackoverflow.com/search?q=%5Bpython%5D+base+conversion