Hola,
El "problema" es que solo estas almacenando en $lista un valor. Y lo que tenias que estar haciendo es creando una cadena a base de concatenar esos valores.
De todas formas, si $pasos siempre va a ser 1, podrias usar la funcion range() (
www.php.net/range) junto con implode() (
www.php.net/implode):
Código PHP:
$inicio=3;
$fin=6;
$lista=range($inicio,$fin);
echo implode(',',$lista);
Es mas, la solucion con el for tambien creo que estaria mejor si dentro del for se hace el array() y luego se añade las comas con el implode(). Ademas, tener la lista en un array la hace mas manejable para otros usos (saber cuantos elementos, por ejemplo).
Saludos.