If you do not want to use libraries, here's an idea using dictionaries:
First I create a dictionary with the occurrences
lista = [1,1,2,3,3,3]
ocorrencias = {}
for numero in lista:
if numero in ocorrencias: #Se o numero ja esta no dicionario
ocorrencias[numero] += 1
else: #Se não está, adiciono em ocorrencias
ocorrencias[numero] = 1
#OU ocorrencias.update({numero:1})
>>> print ocorrencias
{1: 2, 2: 1, 3: 3}
Then I create the ordered list from the dictionary of occurrences
def pega_maior_ocorrencia(dicionario):
maior_ocorrencia = 0
chave = None
for key, value in dicionario.iteritems(): #Python2.X
#for key, value in d.items(): #Python3.X
if value > maior_ocorrencia:
maior_ocorrencia = value
chave = key
del dicionario[chave] #deleta do dict mesmo dentro da função
return [chave]*maior_ocorrencia
lista_ocorrencias = []
for i in range(len(ocorrencias)):
lista_ocorrencias += pega_maior_ocorrencia(ocorrencias)
>>> print lista_ocorrencias
[3, 3, 3, 1, 1, 2]