Like what people have already said, it depends on what you are trying to put inside of your GUI and where you want to put it. But, all of the other GUI programs that others have suggested were hard for me to download and downright difficult to learn. I assume you have used tkinter before (which has disappointing aesthetics), and are unwhelmed by the format of the premade button, entry, and other widgets.
What I recommend doing is not downloading other libraries and software, but rather sticking with tkinter and only using label widgets and the bind function, which is detailed here. What the bind function allows you to do is call an action (function) when a mouse click, keyboard entry, etc... occurs over a certain widget. Essentially, you can make a button by binding the mouse click action with a label. Whenever you click on the label in the GUI, the function is called, however, now you don't have the ugly border around the text and it looks nicer. Similarly, you don't have to use the entry widget, you can bind a keyboard event over an empty label. Then inside your code, you can add whichever keyboard letter/number you press into the stringvar that control the text in the label. The list goes on and on, but essentially you would be using only labels, frames, and canvas' with the bind function to make cooler looking GUI's.
Here's an example of how I made a nicer looking radiobutton grid...
With this, I can customize the size of the circles to match the size of the text, change the color of the selected and unselected circles, and change the spacing between the text and the button circles.