There are multiple ways to solve this problem. As you mentioned that you should "%" usar un del o algo asi
then starting that way, what I did was to generate a list starting from 2 to the number entered by keyboard. Then iterate with a while while the square of the current element is less than or equal to the number entered by keyboard. Then a for will scroll through all the current numbers in the list and ask if that number is divisible by the current element of the while. If so, then it is deleted from the list, altering it.
When the square of the current element (of the while) is greater than the number entered by the keyboard, the program and the resulting list are finished with pure prime numbers.
n = int(raw_input("Ingrese un numero: "))
lista = list(range(2, n+1))
i = 0
while(lista[i]*lista[i] <= n):
# Mientras el cuadrado del elemento actual sea menor que el ultimo elemento
for num in lista:
if num <= lista[i]:
# Cada iteracion del while hace que el for comience desde el primer elemento.
# Esto es para omitir los numeros primos ya encontrados
continue
elif num % lista[i] == 0:
# Si un numero es divisible entre el elemento actual del while
# de ser asi, entonces eliminarlo de la lista (esto altera la lista)
lista.remove(num)
else:
# Si no es divisible, entonces omitirlo (no hacer nada)
pass
i += 1 # Incrementa al siguiente elemento de la lista (que ha sido alterada)
print lista