Différentes distributions sont disponibles, qui incluent parfois beaucoup de packages dédiés à un domaine donné :
            | Version | Date de sortie | Nouveautés | 
            | 1.5(.2) | 13 avril 1999 |       Ajout du mot clé assertPossibilité d'importer une hiérarchie de modules (import spam.ham.eggs)Nouveau module re qui remplace regexLes exceptions sont maintenant des classesAjout de l'option -O qui supprime les assertions et informations de ligne de fichier | 
            | 1.6 | 5 septembre 2000 |       La méthode append() des listes n'accepte plus qu'un seul argumentLe résultat des fonctions str() et repr() est maintenant beaucoup plus souvent différent, exemple : str(1L)=='1' et repr(1L)=='1L'Les chaînes de caractères ont maintenant des méthodes (" abc ".strip())Le module re est compatible avec l'ancien moteur, est plus rapide, et accepte les chaînes UnicodeAjout du module distutilsNouveau prototype "def f(*args, **kw)" pour les fonctions, avant il fallait utiliser apply()int() et long() acceptent maintenant une base en second argumentL'opérateur in peut être surchagé avec une méthode __contains__() | 
            | 2.0 | 16 octobre 2000 |       Changement majeur : support d'UnicodeAjout des compréhensions de liste (List Comprehensions)Ajout des opérateurs avec assignement (a+=b, a*=b, etc.)Les chaînes str ont maintenant des méthodesNouveau ramasse-miettes à cyclesNouveau prototype "def f(*args, **kw)" pour les fonctions, avant il fallait utiliser apply()Ajout des modules distutils, xml.dom.minidom module et xml.sax | 
            | 2.1 | 17 avril 2001 |       Création du module __future__ pour rendre les transitions plus doucesComparaisons riches (méthodes __lt__, __le__, ..., __ne__)Framework d'avertissementAjout des modules inspect, pydoc, doctest, pyunitAjout des références faibles (weak references)Les fonctions peuvent avoir des attributs"Nested Scopes"La version 2.0.1 (juin 2001) sera la première version compatible GPL | 
            | 2.2 | 21 décembre 2001 |       Unification de Type et de Class: on peut maintenant hériter des types de baseAjout des itérateurs et générateursNouvel opérateur a // b pour la division entière | 
            | 2.3 | 29 juillet 2003 |       Ajout des fonctions enumerate() et sum()Le type bool est maintenant vraiment distinct d'un entierBeaucoup d'améliorations du support Unicode | 
            | 2.4 | 30 novembre 2004 |       Ajout des décorateurs de fonction/méthode (@decorateur)Conversion automatique d'un entier court en entier long si le résultat d'une opération est trop grandExpressions de générateur retournant les résultats l'un après l'autre et non pas sous forme d'une liste, exemple : sum( x for x in xrange(10000) )Ajout des fonctions reversed() et sorted()La fonction sort() accepte les mots clés cmp, key et reverseCréation du module decimal et du routeur | 
            | 2.5 | 19 septembre 2006 |       Ajout de l'opérateur withAjout des méthodes send(), throw() et close() aux générateursExpression conditionnelle (a if test else b)Les imports de module peuvent être relatifsAjout des méthodes partition() et rpartition() aux chaînes str et unicodeAjout des fonctions any() et all()Intégration des bibliothèques ctypes, ElementTree, hashlib, sqlite3 et wsgiref | 
            | 2.6 | 1er octobre 2008 |       Nouvelle syntaxe de formatage de chaînes de caractèresClasses de bases abstraitesDécorateurs de classesModules json, multiprocessing, contextmanager et fractionsAmélioration de la compatibilité avec Python 3 | 
            | 3.0 | 3 décembre 2008 |       Fusion des types 'int' et 'long'Les chaînes sont en Unicode par défaut, 'bytes' remplace l'ancien type 'str'Utilise des itérateurs plutôt que des listes là où c'est approprié (ex : dict.keys())a/b est la vraie division par défautexec et print deviennent des fonctionsNone et as deviennent des mots cléLe fichier __init__.py n'est plus nécessaire pour les modules Python`x`, l'opérateur <>, et la méthode find() des chaînes disparaissentDe nombreuses fonctions disparaissent : apply(), buffer(), callable(), ...map() et filter() disparaissent au profit des compréhensions de listereduce() disparaît au profit des boucles explicites Voir la PEP 3100 pour les détails | 
            | 3.1 | 27 juin 2009 |       Ajout d'un type de dictionnaire ordonné,Optimisations diverses apportées au type 'int',Nouvelles fonctionnalités du module 'unittest',Module d'entrées/sorties 'io' rendu plus rapide,Implémentation de référence de l'instruction "import" en pur PythonNouvelle syntaxe pour les instructions 'with' imbriquées. |