Buscando intervalo em SQLite3 em python

estou tentando fazer uma busca de todos os dados que estejam dentro de um certo intervalo informado pelo usuário:

import sqlite3
from contextlib import closing

vl1 = input('valor 1: ')
vl2 = input('valor 2: ')

with sqlite3.connect('preços.db') as cnx, closing(cnx.cursor()) as cursor:
    cursor.execute(f'select * from preços where preço >= ? and preço <= ?', (vl1, vl2))
    x=0
    while True:
        rst = cursor.fetchone()
        if rst is None:
            if x==0:
                print('produto não encontrado!')
            break
        print(f'tipo: {rst[0]}, preço: {rst[1]}')
        x+=1

de certa forma funciona, só que apenas com intervalos pequenos, quando o intervalo é maior simplesmente mostra toda a tabela ou não mostra nada. Como faço para corrigir isso?

Você recebe alguma mensagem de erro?

O que você chama de intervalo maior? 10, 100, 1 milhão?
Para um mesmo intervalo acontece esses dois comportamentos (mostrar toda a tabela, não mostra nada).

Pode postar um exemplo com o script que cria a tabela, exemplos de dados nela e que valores de intervalo causam o problema?