Here's an attempt at an answer:--Pidgins are basic contact forms that come about due to speakers of two languages who do not understand each other making up a simpler mixed system to speak to each other. They have no native speakers, and they are not full "languages".--Creoles are languages with mixed origins, but they are full languages, with native speaker populations.Some would say that a pidgin becomes a creole once it has native speakers (children who use and fill in the language). That's somewhat controversial, however, because some scholars now believe that the simple pidgin>creole development is not an accurate reflection of how some (or maybe many) creoles developed. But that's the general idea, and the traditional understanding.

The more complicated answer is that there isn't a strict distinction between the two, and the terms refer to idealizations of language types that don't always match the real world exactly. And to further complicated things, all of these can exist at the same time in the same location. Nigerian Pidgin (http://apics-online.info/surveys/17 or https://en.wikipedia.org/wiki/Nigerian_Pidgin) is a very interesting example, where today there are some native speakers so it can be considered a creole, but most of the speakers are adults who speak it as a second language, therefore preserving its status as a second language (and pidgin, at least for those speakers!), all the while being in constant contact with standard English in formal situations. Another complicated example is Tok Pisin which used to be a pidgin but probably can now qualify as a creole despite the name being associated with the word "pidgin". In fact, many pidgins are now shifting toward creole status. Note that this is another distinction, that pidgins tend to have relatively short lifespans, while creoles may be spoken indefinitely by one generation after the next.

Short answer: it's complicated. Basically, pidgins are limited in some ways, do not have native speakers, etc., while creoles also have mixed origins but are 'real' languages in the relevant sense.

There are many more places to read more about these issues online, so just take this reply as a starting point.