It's easy to bother those who bother you. If you tell them you're on the do-not-call list or tell them not to call you again, you're actually doing them a favor because they can save time, hang up and move to the next call. Because it costs money to maintain and use do-not-call lists, or to buy the official government one, chances are 1) they don't care that you're on the Federal list, they know they're breaking the law anyway; and 2) it costs money to remember not to call you again, they don't want to spend that, so figure they'll call you again no matter what you say.
So... next time they call, and you can count on it for these carpet cleaning scams, simply set up an appointment. Then don't open up. If you have a vacant lot near your house, send them to that. They'll probably phone just before the appointment time; pick up to confirm you'll be home. If they call when they're outside your door, just ignore it. And don't open the door.
Chances are they'll try AGAIN. Have them come out AGAIN. The idea is to waste their time and gasoline. Play mind games with them. It's fun.
I've managed to have the local police actually arrest these people but I don't recommend that sort of all-out confrontational approach for everybody. I'm armed and not especially worried. For most, the best bet is to see how much of their time you can waste.