Manipulação de números em uma string(Iniciante)

Bom, tenho que descobrir se os algarismos de P estão em Q um ao lado do outro; porém meu código está verificando apenas se os algarismos se encontram em Q, não necessariamente um após o outro.
Exemplo do que estou querendo:. P = 45, Q = 67459; -> P é subnúmero de Q
P = 45, Q = 847835; -> P não é subnúmero de Q

Exemplo do que está acontecendo:. P = 43, Q = 3483; -> P é subnúmero de Q
P = 43, Q = 4023; -> P não é subnúmero de Q

PS: Não sei se esta é a forma mais simples de fazer este código…

print("ATENÇÃO!, o valor de P não pode conter mais algarismos que o valor de Q!!")
q = int(input("Digite o valor de Q: "))
p = int(input("Digite o valor de P: "))
st_p = str(p)
st_q = str(q)
tm_p = len(st_p)
tm_q = len(st_q)
lista_q = []
lista_p = []
ctd = 0
for i in range(tm_q):
  lista_q.append(st_q[i])
for n in range(tm_p):
  if st_p[n] in lista_q:
    ctd = ctd + 1
  else:
    ctd = ctd + 0

if ctd == len(st_p):
  print("P é subnumero de Q")
else:
     print("P não é subnumero de Q")

if tm_p > tm_q:
  print("O valor digitado não atende à restrição solicitada!")

Um jeito mais simples…

q = input("Digite o valor de Q: ")
p = input("Digite o valor de P: ")

if q.find(p) != -1:
    print("P é subnumero de Q")
else:
    print("P não é subnumero de Q")

Lembrando que input já retorna uma str…

1 curtida

Duuuh, viajei… hahahah muito obrigado!!