It's unclear what you want.
Do you want no change addresses, but still have change that goes back to one of the addresses from which coins were taken? That does not have any size/fee benefit. This is possible by using the coin control feature (in the Bitcoin-Core GUI) or the
createrawtransaction RPC interface.
Do you want no change at all? That means the amount you are sending must exactly match the sum of the sizes of some of the unspent outputs you have in your wallet. It does result is slightly smaller transactions and thus lower fees, but it is highly constraining. You'll have to construct transactions manually if you need this.