About the last question, (generating strings), note that mT5 is pretrained only on masked language model objective so that, unlike original T5, we could not play with downstream tasks without finetuning.
To test MLM, you could try the following snippets
from transformers import MT5Tokenizer, TFMT5ForConditionalGeneration
model = TFMT5ForConditionalGeneration.from_pretrained('google/mt5-base')
tokenizer = MT5Tokenizer.from_pretrained('google/mt5-base', use_fast=True)

input_ids = tokenizer.encode("What the <extra_id_0> is going on inside this <extra_id_1> ?", return_tensors="tf")

output_ids = model.generate(input_ids)
print(tokenizer.batch_decode(output_ids))

return
[’ <extra_id_0> hell <extra_id_1> strange world <extra_id_2> … ']