Instead of time.sleep
try using after
in the following way as it won't delay your GUI to show:
import tkinter as tk
def update():
global each, limit, period, widget
if each < limit:
widget['text'] = each
each += 1
widget.after(period*1000, update)
root = tk.Tk()
widget = tk.Label(root, text="Initial text")
widget.pack()
limit = 3
period = 1
each = 0
update()
root.mainloop()