You should not use a loop to create your windows. The way you have set up your function will just create all the windows at once.
The below code will create windows based on the list itself so all you will need to do is update the list when you want to change the number of pages that the "Next" button will go to.
Keep in mind this way is probably not the best method of working with the list. For a clearer more OOP method you will probably want to write something up in a Class. The below just serves to show how one could use the list to decide on what Toplevel to create next.
from tkinter import *
root = Tk()
mylist = [1,2,3,4,5]
current_toplevel = None
def go_cmd(x):
# global is used to make variables that are outside of the function
# in the global namespace accessible.
global current_toplevel, mylist
wx = root.winfo_x()
wy = root.winfo_y()
next_index = x + 1
# This will check if the next_index variable will be within the available
# index range and if next_index is outside the index range it will reset
# to index zero. This will prevent the "outside index" error.
if next_index not in list(range(len(mylist))):
next_index = 0
# if the variable current_toplevel is not set to none then destroy it
# so we can create the next window.
if current_toplevel != None:
current_toplevel.destroy()
current_toplevel = Toplevel()
# set the location of the new top level window based off of the
# root windows location. This can be changed to anything but
# I wanted to use this as the example.
current_toplevel.geometry("+{}+{}".format(wx, wy))
Label(current_toplevel, width = 10, text = mylist[x]).grid(row=0,column=0)
# because we need to prep the "Next" button for the next index
# we will need to use a lambda command for getting the next window
b = Button(current_toplevel, width = 10, text="Next",
command = lambda a = next_index: go_cmd(a)).grid(row=1,column=0)
b1 = Button(root,text = "Go", width = 10,
command = lambda: go_cmd(0)).grid(row=0,column=0)
root.mainloop()
Here is the code without all the instructional comments.
from tkinter import *
root = Tk()
mylist = [1,2,3,4,5]
current_toplevel = None
def go_cmd(x):
global current_toplevel, mylist
wx = root.winfo_x()
wy = root.winfo_y()
next_index = x + 1
if next_index not in list(range(len(mylist))):
next_index = 0
if current_toplevel != None:
current_toplevel.destroy()
current_toplevel = Toplevel()
current_toplevel.geometry("+{}+{}".format(wx, wy))
Label(current_toplevel, width = 10, text = mylist[x]).grid(row=0,column=0)
b = Button(current_toplevel, width = 10, text="Next",
command = lambda a = next_index: go_cmd(a)).grid(row=1,column=0)
b1 = Button(root,text = "Go", width = 10,
command = lambda: go_cmd(0)).grid(row=0,column=0)
root.mainloop()