I would suggest you use the code from the tutorial about quantum state tomography, adapting it to a real device of your choice. You can find the updated tutorial here
Caveat: as state tomography requires 3^n circuits, you will need probably to find a method of batch processing of these circuits if they exceed the job circuit limit of your real device. See the code here
“This performs measurement in the Pauli-basis resulting in :math:`3^n circuits for an n-qubit state tomography experiment.”
For an example of results of « full state tomography » on real devices (Melbourne and ibmqx4) for up to 5 qubits, I suggest you have a look at the end of my own qiskit tutorial here
For the exploration of a certain subspace on a real device, I have some doubt about the approach as noise will inevitability produce a result somewhere in the entire Hilbert space and not confined to the chosen subspace.
However, you may be interested by this recent paper
and by its presentation in Phys.org
I quote from this presentation written by Ingrid Fadelli
“By combining statistical learning and unitary t-design theory, the researchers were able to devise a rigorous and efficient procedure that allows classical machines to produce approximate classical descriptions of quantum many-body systems. These descriptions can be used to predict several properties of the quantum systems that are being studied by performing a minimal number of quantum measurements.”
So, you are surely right in proposing that full tomography can be replaced by alternate methods using a lower number of measurements.
For your last question about the 3^n bound, I see that JSdJ already answered to you.